Merge branch 'release/1.1.9' into 'stable'
[akkoma] / lib / pleroma / list.ex
index 1d320206e3091b68ec61535247666f42f2232700..c5db1cb62614f3cc10daa4ef63b6cdb3dff14733 100644 (file)
@@ -13,7 +13,7 @@ defmodule Pleroma.List do
   alias Pleroma.User
 
   schema "lists" do
-    belongs_to(:user, User, type: Pleroma.FlakeId)
+    belongs_to(:user, User, type: FlakeId.Ecto.CompatType)
     field(:title, :string)
     field(:following, {:array, :string}, default: [])
     field(:ap_id, :string)
@@ -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