Merge branch 'release/2.1.2' into 'stable'
[akkoma] / lib / pleroma / web / activity_pub / object_validators / url_object_validator.ex
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