url_object_validator.ex (659B)
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.UrlObjectValidator do 6 use Ecto.Schema 7 8 alias Pleroma.EctoType.ActivityPub.ObjectValidators 9 10 import Ecto.Changeset 11 @primary_key false 12 13 embedded_schema do 14 field(:type, :string) 15 field(:href, ObjectValidators.Uri) 16 field(:mediaType, :string, default: "application/octet-stream") 17 end 18 19 def changeset(struct, data) do 20 struct 21 |> cast(data, __schema__(:fields)) 22 |> validate_required([:type, :href, :mediaType]) 23 end 24 end