Add validation in Pleroma.List.create/2
This commit is contained in:
parent
6dc24422dc
commit
3b1b631c2a
2 changed files with 18 additions and 7 deletions
|
@ -109,15 +109,19 @@ def rename(%Pleroma.List{} = list, title) do
|
||||||
end
|
end
|
||||||
|
|
||||||
def create(title, %User{} = creator) do
|
def create(title, %User{} = creator) do
|
||||||
list = %Pleroma.List{user_id: creator.id, title: title}
|
changeset = title_changeset(%Pleroma.List{user_id: creator.id}, %{title: title})
|
||||||
|
|
||||||
|
if changeset.valid? do
|
||||||
Repo.transaction(fn ->
|
Repo.transaction(fn ->
|
||||||
list = Repo.insert!(list)
|
list = Repo.insert!(changeset)
|
||||||
|
|
||||||
list
|
list
|
||||||
|> change(ap_id: "#{creator.ap_id}/lists/#{list.id}")
|
|> change(ap_id: "#{creator.ap_id}/lists/#{list.id}")
|
||||||
|> Repo.update!()
|
|> Repo.update!()
|
||||||
end)
|
end)
|
||||||
|
else
|
||||||
|
{:error, changeset}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def follow(%Pleroma.List{following: following} = list, %User{} = followed) do
|
def follow(%Pleroma.List{following: following} = list, %User{} = followed) do
|
||||||
|
|
|
@ -15,6 +15,13 @@ test "creating a list" do
|
||||||
assert title == "title"
|
assert title == "title"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "validates title" do
|
||||||
|
user = insert(:user)
|
||||||
|
|
||||||
|
assert {:error, changeset} = Pleroma.List.create("", user)
|
||||||
|
assert changeset.errors == [title: {"can't be blank", [validation: :required]}]
|
||||||
|
end
|
||||||
|
|
||||||
test "getting a list not belonging to the user" do
|
test "getting a list not belonging to the user" do
|
||||||
user = insert(:user)
|
user = insert(:user)
|
||||||
other_user = insert(:user)
|
other_user = insert(:user)
|
||||||
|
|
Loading…
Reference in a new issue