diff options
6 files changed, 24 insertions, 28 deletions
| diff --git a/lib/pleroma/web/activity_pub/object_validators/answer_validator.ex b/lib/pleroma/web/activity_pub/object_validators/answer_validator.ex index 323367642..b9fbaf4f6 100644 --- a/lib/pleroma/web/activity_pub/object_validators/answer_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/answer_validator.ex @@ -15,16 +15,13 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.AnswerValidator do    embedded_schema do      field(:id, ObjectValidators.ObjectID, primary_key: true) -    field(:to, {:array, :string}, default: []) -    field(:cc, {:array, :string}, default: []) - -    # is this actually needed? -    field(:bto, {:array, :string}, default: []) -    field(:bcc, {:array, :string}, default: []) - +    field(:to, ObjectValidators.Recipients, default: []) +    field(:cc, ObjectValidators.Recipients, default: []) +    field(:bto, ObjectValidators.Recipients, default: []) +    field(:bcc, ObjectValidators.Recipients, default: [])      field(:type, :string)      field(:name, :string) -    field(:inReplyTo, :string) +    field(:inReplyTo, ObjectValidators.ObjectID)      field(:attributedTo, ObjectValidators.ObjectID)      # TODO: Remove actor on objects diff --git a/lib/pleroma/web/activity_pub/object_validators/create_note_validator.ex b/lib/pleroma/web/activity_pub/object_validators/create_note_validator.ex index 316bd0c07..9b9743c4a 100644 --- a/lib/pleroma/web/activity_pub/object_validators/create_note_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/create_note_validator.ex @@ -16,11 +16,10 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CreateNoteValidator do      field(:id, ObjectValidators.ObjectID, primary_key: true)      field(:actor, ObjectValidators.ObjectID)      field(:type, :string) -    field(:to, {:array, :string}) -    field(:cc, {:array, :string}) -    field(:bto, {:array, :string}, default: []) -    field(:bcc, {:array, :string}, default: []) - +    field(:to, ObjectValidators.Recipients, default: []) +    field(:cc, ObjectValidators.Recipients, default: []) +    field(:bto, ObjectValidators.Recipients, default: []) +    field(:bcc, ObjectValidators.Recipients, default: [])      embeds_one(:object, NoteValidator)    end diff --git a/lib/pleroma/web/activity_pub/object_validators/emoji_react_validator.ex b/lib/pleroma/web/activity_pub/object_validators/emoji_react_validator.ex index a543af1f8..336c92d35 100644 --- a/lib/pleroma/web/activity_pub/object_validators/emoji_react_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/emoji_react_validator.ex @@ -20,8 +20,8 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.EmojiReactValidator do      field(:actor, ObjectValidators.ObjectID)      field(:context, :string)      field(:content, :string) -    field(:to, {:array, :string}, default: []) -    field(:cc, {:array, :string}, default: []) +    field(:to, ObjectValidators.Recipients, default: []) +    field(:cc, ObjectValidators.Recipients, default: [])    end    def cast_and_validate(data) do diff --git a/lib/pleroma/web/activity_pub/object_validators/note_validator.ex b/lib/pleroma/web/activity_pub/object_validators/note_validator.ex index a65fe2354..14ae29cb6 100644 --- a/lib/pleroma/web/activity_pub/object_validators/note_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/note_validator.ex @@ -13,10 +13,10 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.NoteValidator do    embedded_schema do      field(:id, ObjectValidators.ObjectID, primary_key: true) -    field(:to, {:array, :string}, default: []) -    field(:cc, {:array, :string}, default: []) -    field(:bto, {:array, :string}, default: []) -    field(:bcc, {:array, :string}, default: []) +    field(:to, ObjectValidators.Recipients, default: []) +    field(:cc, ObjectValidators.Recipients, default: []) +    field(:bto, ObjectValidators.Recipients, default: []) +    field(:bcc, ObjectValidators.Recipients, default: [])      # TODO: Write type      field(:tag, {:array, :map}, default: [])      field(:type, :string) @@ -34,7 +34,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.NoteValidator do      field(:replies_count, :integer, default: 0)      field(:like_count, :integer, default: 0)      field(:announcement_count, :integer, default: 0) -    field(:inReplyTo, :string) +    field(:inReplyTo, ObjectValidators.ObjectID)      field(:uri, ObjectValidators.Uri)      field(:likes, {:array, :string}, default: []) diff --git a/lib/pleroma/web/activity_pub/object_validators/question_validator.ex b/lib/pleroma/web/activity_pub/object_validators/question_validator.ex index f47acf606..220065fd4 100644 --- a/lib/pleroma/web/activity_pub/object_validators/question_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/question_validator.ex @@ -19,10 +19,10 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.QuestionValidator do    # Extends from NoteValidator    embedded_schema do      field(:id, ObjectValidators.ObjectID, primary_key: true) -    field(:to, {:array, :string}, default: []) -    field(:cc, {:array, :string}, default: []) -    field(:bto, {:array, :string}, default: []) -    field(:bcc, {:array, :string}, default: []) +    field(:to, ObjectValidators.Recipients, default: []) +    field(:cc, ObjectValidators.Recipients, default: []) +    field(:bto, ObjectValidators.Recipients, default: []) +    field(:bcc, ObjectValidators.Recipients, default: [])      # TODO: Write type      field(:tag, {:array, :map}, default: [])      field(:type, :string) @@ -42,7 +42,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.QuestionValidator do      field(:replies_count, :integer, default: 0)      field(:like_count, :integer, default: 0)      field(:announcement_count, :integer, default: 0) -    field(:inReplyTo, :string) +    field(:inReplyTo, ObjectValidators.ObjectID)      field(:uri, ObjectValidators.Uri)      # short identifier for PleromaFE to group statuses by context      field(:context_id, :integer) @@ -117,7 +117,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.QuestionValidator do    def validate_data(data_cng) do      data_cng      |> validate_inclusion(:type, ["Question"]) -    |> validate_required([:id, :actor, :attributedTo, :type, :context]) +    |> validate_required([:id, :actor, :attributedTo, :type, :context, :context_id])      |> CommonValidations.validate_any_presence([:cc, :to])      |> CommonValidations.validate_fields_match([:actor, :attributedTo])      |> CommonValidations.validate_actor_presence() diff --git a/lib/pleroma/web/activity_pub/object_validators/undo_validator.ex b/lib/pleroma/web/activity_pub/object_validators/undo_validator.ex index e8d2d39c1..8cae94467 100644 --- a/lib/pleroma/web/activity_pub/object_validators/undo_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/undo_validator.ex @@ -18,8 +18,8 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.UndoValidator do      field(:type, :string)      field(:object, ObjectValidators.ObjectID)      field(:actor, ObjectValidators.ObjectID) -    field(:to, {:array, :string}, default: []) -    field(:cc, {:array, :string}, default: []) +    field(:to, ObjectValidators.Recipients, default: []) +    field(:cc, ObjectValidators.Recipients, default: [])    end    def cast_and_validate(data) do | 
