2020-01-26 20:36:50 +00:00
|
|
|
defmodule Mobilizon.Web.ActivityPub.ObjectView do
|
|
|
|
use Mobilizon.Web, :view
|
2019-09-12 23:35:03 +00:00
|
|
|
|
2020-01-22 01:14:42 +00:00
|
|
|
alias Mobilizon.Federation.ActivityPub.{Activity, Utils}
|
2018-05-17 09:32:23 +00:00
|
|
|
|
2019-04-25 17:05:05 +00:00
|
|
|
def render("activity.json", %{activity: %Activity{local: local, data: data} = activity}) do
|
|
|
|
%{
|
|
|
|
"id" => data["id"],
|
|
|
|
"type" =>
|
|
|
|
if local do
|
|
|
|
"Create"
|
|
|
|
else
|
|
|
|
"Announce"
|
|
|
|
end,
|
|
|
|
"actor" => activity.actor,
|
|
|
|
# Not sure if needed since this is used into outbox
|
2020-08-14 09:32:23 +00:00
|
|
|
"published" => DateTime.utc_now() |> DateTime.to_iso8601(),
|
2019-04-25 17:05:05 +00:00
|
|
|
"to" => activity.recipients,
|
|
|
|
"object" =>
|
|
|
|
case data["type"] do
|
|
|
|
"Event" ->
|
|
|
|
render_one(data, ObjectView, "event.json", as: :event)
|
|
|
|
|
|
|
|
"Note" ->
|
|
|
|
render_one(data, ObjectView, "comment.json", as: :comment)
|
|
|
|
end
|
|
|
|
}
|
|
|
|
|> Map.merge(Utils.make_json_ld_header())
|
|
|
|
end
|
2018-05-17 09:32:23 +00:00
|
|
|
end
|