Merge branch 'docs/debian-packages' into 'develop'
[akkoma] / lib / pleroma / web / activity_pub / object_validators / common_validations.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.CommonValidations do
6 import Ecto.Changeset
7
8 alias Pleroma.Object
9 alias Pleroma.User
10
11 def validate_actor_presence(cng, field_name \\ :actor) do
12 cng
13 |> validate_change(field_name, fn field_name, actor ->
14 if User.get_cached_by_ap_id(actor) do
15 []
16 else
17 [{field_name, "can't find user"}]
18 end
19 end)
20 end
21
22 def validate_object_presence(cng, field_name \\ :object) do
23 cng
24 |> validate_change(field_name, fn field_name, object ->
25 if Object.get_cached_by_ap_id(object) do
26 []
27 else
28 [{field_name, "can't find object"}]
29 end
30 end)
31 end
32 end