X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Factivity_pub%2Fobject_validators%2Ftag_validator.ex;h=dd1bc53ed93a901df112d7f5cac46c4ca0e53444;hb=2cc6b1e1bd3059b564d86cb0582827c30fc5cf65;hp=7510215851346810f3a86f1e33ae6ff1f7d39620;hpb=62bf6d67e393d2b290d226e8505d622d944c9a26;p=akkoma diff --git a/lib/pleroma/web/activity_pub/object_validators/tag_validator.ex b/lib/pleroma/web/activity_pub/object_validators/tag_validator.ex index 751021585..dd1bc53ed 100644 --- a/lib/pleroma/web/activity_pub/object_validators/tag_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/tag_validator.ex @@ -68,6 +68,53 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.TagValidator do |> validate_required([:type, :name, :icon]) end + def changeset(struct, %{"type" => "Book"} = data) do + data = + if Map.has_key?(data, "title") do + Map.put(data, "name", data["title"]) + else + data + end + + struct + |> cast(data, [:type, :name]) + |> validate_required([:type, :name]) + end + + def changeset(struct, %{"type" => "Edition"} = data) do + # 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]) + |> validate_required([:type, :name]) + end + + def changeset(struct, %{"type" => "Work"} = data) do + data = + if Map.has_key?(data, "title") do + Map.put(data, "name", data["title"]) + else + data + end + + struct + |> cast(data, [:type, :name]) + |> validate_required([:type, :name]) + end + + def changeset(struct, %{"type" => "Author"} = data) do + struct + |> cast(data, [:type, :name]) + |> validate_required([:type, :name]) + end + def icon_changeset(struct, data) do struct |> cast(data, [:type, :url])