diff options
author | Egor Kislitsyn <egor@kislitsyn.com> | 2019-08-26 18:59:57 +0700 |
---|---|---|
committer | Egor Kislitsyn <egor@kislitsyn.com> | 2019-08-26 18:59:57 +0700 |
commit | 3b1b631c2aedc8e359c296b11237fa4f6edd31e5 (patch) | |
tree | 15f71ab3a05676869abcd4692cdedeaa2b9ff56a /lib | |
parent | 6dc24422dc403663f6385272f071e2223c24b2ce (diff) | |
download | pleroma-3b1b631c2aedc8e359c296b11237fa4f6edd31e5.tar.gz pleroma-3b1b631c2aedc8e359c296b11237fa4f6edd31e5.zip |
Add validation in Pleroma.List.create/2
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/list.ex | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/pleroma/list.ex b/lib/pleroma/list.ex index 1d320206e..c572380c2 100644 --- a/lib/pleroma/list.ex +++ b/lib/pleroma/list.ex @@ -109,15 +109,19 @@ defmodule Pleroma.List do end def create(title, %User{} = creator) do - list = %Pleroma.List{user_id: creator.id, title: title} - - Repo.transaction(fn -> - list = Repo.insert!(list) - - list - |> change(ap_id: "#{creator.ap_id}/lists/#{list.id}") - |> Repo.update!() - end) + changeset = title_changeset(%Pleroma.List{user_id: creator.id}, %{title: title}) + + if changeset.valid? do + Repo.transaction(fn -> + list = Repo.insert!(changeset) + + list + |> change(ap_id: "#{creator.ap_id}/lists/#{list.id}") + |> Repo.update!() + end) + else + {:error, changeset} + end end def follow(%Pleroma.List{following: following} = list, %User{} = followed) do |