create_note_validator.ex (932B)
1 # Pleroma: A lightweight social networking server 2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> 3 # SPDX-License-Identifier: AGPL-3.0-only 4 5 defmodule Pleroma.Web.ActivityPub.ObjectValidators.CreateNoteValidator do 6 use Ecto.Schema 7 8 alias Pleroma.EctoType.ActivityPub.ObjectValidators 9 alias Pleroma.Web.ActivityPub.ObjectValidators.NoteValidator 10 11 import Ecto.Changeset 12 13 @primary_key false 14 15 embedded_schema do 16 field(:id, ObjectValidators.ObjectID, primary_key: true) 17 field(:actor, ObjectValidators.ObjectID) 18 field(:type, :string) 19 field(:to, ObjectValidators.Recipients, default: []) 20 field(:cc, ObjectValidators.Recipients, default: []) 21 field(:bto, ObjectValidators.Recipients, default: []) 22 field(:bcc, ObjectValidators.Recipients, default: []) 23 embeds_one(:object, NoteValidator) 24 end 25 26 def cast_data(data) do 27 cast(%__MODULE__{}, data, __schema__(:fields)) 28 end 29 end