Allow for varying name fields
authorFloatingGhost <hannah@coffee-and-dreams.uk>
Fri, 7 Jan 2022 17:35:56 +0000 (17:35 +0000)
committerFloatingGhost <hannah@coffee-and-dreams.uk>
Fri, 7 Jan 2022 17:35:56 +0000 (17:35 +0000)
lib/pleroma/web/activity_pub/object_validators/tag_validator.ex

index 00d0194afcf27849ff1e0410b9113c249f79283d..dd1bc53ed93a901df112d7f5cac46c4ca0e53444 100644 (file)
@@ -69,7 +69,12 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.TagValidator do
   end
 
   def changeset(struct, %{"type" => "Book"} = data) do
-    data = Map.put(data, "name", data["title"])
+    data =
+      if Map.has_key?(data, "title") do
+        Map.put(data, "name", data["title"])
+      else
+        data
+      end
 
     struct
     |> cast(data, [:type, :name])
@@ -77,7 +82,14 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.TagValidator do
   end
 
   def changeset(struct, %{"type" => "Edition"} = data) do
-    data = Map.put(data, "name", data["title"])
+    # Sometimes it's title, sometimes name
+    # Don't ask me.
+    data =
+      if Map.has_key?(data, "title") do
+        Map.put(data, "name", data["title"])
+      else
+        data
+      end
 
     struct
     |> cast(data, [:type, :name])
@@ -85,7 +97,12 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.TagValidator do
   end
 
   def changeset(struct, %{"type" => "Work"} = data) do
-    data = Map.put(data, "name", data["title"])
+    data =
+      if Map.has_key?(data, "title") do
+        Map.put(data, "name", data["title"])
+      else
+        data
+      end
 
     struct
     |> cast(data, [:type, :name])