logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git

object_view.ex (1334B)


  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Pleroma.Web.ActivityPub.ObjectView do
  5. use Pleroma.Web, :view
  6. alias Pleroma.Activity
  7. alias Pleroma.Object
  8. alias Pleroma.Web.ActivityPub.Transmogrifier
  9. def render("object.json", %{object: %Object{} = object}) do
  10. base = Pleroma.Web.ActivityPub.Utils.make_json_ld_header()
  11. additional = Transmogrifier.prepare_object(object.data)
  12. Map.merge(base, additional)
  13. end
  14. def render("object.json", %{object: %Activity{data: %{"type" => activity_type}} = activity})
  15. when activity_type in ["Create", "Listen"] do
  16. base = Pleroma.Web.ActivityPub.Utils.make_json_ld_header()
  17. object = Object.normalize(activity, fetch: false)
  18. additional =
  19. Transmogrifier.prepare_object(activity.data)
  20. |> Map.put("object", Transmogrifier.prepare_object(object.data))
  21. Map.merge(base, additional)
  22. end
  23. def render("object.json", %{object: %Activity{} = activity}) do
  24. base = Pleroma.Web.ActivityPub.Utils.make_json_ld_header()
  25. object_id = Object.normalize(activity, id_only: true)
  26. additional =
  27. Transmogrifier.prepare_object(activity.data)
  28. |> Map.put("object", object_id)
  29. Map.merge(base, additional)
  30. end
  31. end