forked from AkkomaGang/akkoma
common_fixes: Get fixes common from Audio and Question
This commit is contained in:
parent
2bc08d5573
commit
c9d6638461
3 changed files with 29 additions and 39 deletions
|
@ -7,15 +7,14 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.AudioValidator do
|
||||||
|
|
||||||
alias Pleroma.EctoType.ActivityPub.ObjectValidators
|
alias Pleroma.EctoType.ActivityPub.ObjectValidators
|
||||||
alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator
|
alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator
|
||||||
|
alias Pleroma.Web.ActivityPub.ObjectValidators.CommonFixes
|
||||||
alias Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations
|
alias Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations
|
||||||
alias Pleroma.Web.ActivityPub.Utils
|
|
||||||
|
|
||||||
import Ecto.Changeset
|
import Ecto.Changeset
|
||||||
|
|
||||||
@primary_key false
|
@primary_key false
|
||||||
@derive Jason.Encoder
|
@derive Jason.Encoder
|
||||||
|
|
||||||
# Extends from NoteValidator
|
|
||||||
embedded_schema do
|
embedded_schema do
|
||||||
field(:id, ObjectValidators.ObjectID, primary_key: true)
|
field(:id, ObjectValidators.ObjectID, primary_key: true)
|
||||||
field(:to, ObjectValidators.Recipients, default: [])
|
field(:to, ObjectValidators.Recipients, default: [])
|
||||||
|
@ -67,26 +66,10 @@ def cast_data(data) do
|
||||||
|> changeset(data)
|
|> changeset(data)
|
||||||
end
|
end
|
||||||
|
|
||||||
# based on Pleroma.Web.ActivityPub.Utils.lazy_put_objects_defaults
|
|
||||||
defp fix_defaults(data) do
|
|
||||||
%{data: %{"id" => context}, id: context_id} =
|
|
||||||
Utils.create_context(data["context"] || data["conversation"])
|
|
||||||
|
|
||||||
data
|
|
||||||
|> Map.put_new_lazy("published", &Utils.make_date/0)
|
|
||||||
|> Map.put_new("context", context)
|
|
||||||
|> Map.put_new("context_id", context_id)
|
|
||||||
end
|
|
||||||
|
|
||||||
defp fix_attribution(data) do
|
|
||||||
data
|
|
||||||
|> Map.put_new("actor", data["attributedTo"])
|
|
||||||
end
|
|
||||||
|
|
||||||
defp fix(data) do
|
defp fix(data) do
|
||||||
data
|
data
|
||||||
|> fix_defaults()
|
|> CommonFixes.fix_defaults()
|
||||||
|> fix_attribution()
|
|> CommonFixes.fix_attribution()
|
||||||
end
|
end
|
||||||
|
|
||||||
def changeset(struct, data) do
|
def changeset(struct, data) do
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Pleroma: A lightweight social networking server
|
||||||
|
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
|
defmodule Pleroma.Web.ActivityPub.ObjectValidators.CommonFixes do
|
||||||
|
alias Pleroma.Web.ActivityPub.Utils
|
||||||
|
|
||||||
|
# based on Pleroma.Web.ActivityPub.Utils.lazy_put_objects_defaults
|
||||||
|
def fix_defaults(data) do
|
||||||
|
%{data: %{"id" => context}, id: context_id} =
|
||||||
|
Utils.create_context(data["context"] || data["conversation"])
|
||||||
|
|
||||||
|
data
|
||||||
|
|> Map.put_new_lazy("published", &Utils.make_date/0)
|
||||||
|
|> Map.put_new("context", context)
|
||||||
|
|> Map.put_new("context_id", context_id)
|
||||||
|
end
|
||||||
|
|
||||||
|
def fix_attribution(data) do
|
||||||
|
data
|
||||||
|
|> Map.put_new("actor", data["attributedTo"])
|
||||||
|
end
|
||||||
|
end
|
|
@ -7,9 +7,9 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.QuestionValidator do
|
||||||
|
|
||||||
alias Pleroma.EctoType.ActivityPub.ObjectValidators
|
alias Pleroma.EctoType.ActivityPub.ObjectValidators
|
||||||
alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator
|
alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator
|
||||||
|
alias Pleroma.Web.ActivityPub.ObjectValidators.CommonFixes
|
||||||
alias Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations
|
alias Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations
|
||||||
alias Pleroma.Web.ActivityPub.ObjectValidators.QuestionOptionsValidator
|
alias Pleroma.Web.ActivityPub.ObjectValidators.QuestionOptionsValidator
|
||||||
alias Pleroma.Web.ActivityPub.Utils
|
|
||||||
|
|
||||||
import Ecto.Changeset
|
import Ecto.Changeset
|
||||||
|
|
||||||
|
@ -81,27 +81,11 @@ defp fix_closed(data) do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# based on Pleroma.Web.ActivityPub.Utils.lazy_put_objects_defaults
|
|
||||||
defp fix_defaults(data) do
|
|
||||||
%{data: %{"id" => context}, id: context_id} =
|
|
||||||
Utils.create_context(data["context"] || data["conversation"])
|
|
||||||
|
|
||||||
data
|
|
||||||
|> Map.put_new_lazy("published", &Utils.make_date/0)
|
|
||||||
|> Map.put_new("context", context)
|
|
||||||
|> Map.put_new("context_id", context_id)
|
|
||||||
end
|
|
||||||
|
|
||||||
defp fix_attribution(data) do
|
|
||||||
data
|
|
||||||
|> Map.put_new("actor", data["attributedTo"])
|
|
||||||
end
|
|
||||||
|
|
||||||
defp fix(data) do
|
defp fix(data) do
|
||||||
data
|
data
|
||||||
|> fix_attribution()
|
|> CommonFixes.fix_defaults()
|
||||||
|
|> CommonFixes.fix_attribution()
|
||||||
|> fix_closed()
|
|> fix_closed()
|
||||||
|> fix_defaults()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def changeset(struct, data) do
|
def changeset(struct, data) do
|
||||||
|
|
Loading…
Reference in a new issue