mobilizon/lib/mobilizon_web/views/activity_pub/object_view.ex

50 lines
1.5 KiB
Elixir
Raw Normal View History

defmodule MobilizonWeb.ActivityPub.ObjectView do
use MobilizonWeb, :view
alias MobilizonWeb.ActivityPub.ObjectView
alias Mobilizon.Service.ActivityPub.Transmogrifier
2018-11-12 09:05:31 +01:00
alias Mobilizon.Service.ActivityPub.Utils
def render("event.json", %{event: event}) do
event = %{
"type" => "Event",
"id" => event.url,
"name" => event.title,
"category" => render_one(event.category, ObjectView, "category.json", as: :category),
"content" => event.description,
2018-11-12 09:05:31 +01:00
"mediaType" => "text/html",
"published" => Timex.format!(event.inserted_at, "{ISO:Extended}"),
"updated" => Timex.format!(event.updated_at, "{ISO:Extended}")
}
2018-11-12 09:05:31 +01:00
Map.merge(event, Utils.make_json_ld_header())
end
2018-11-12 09:05:31 +01:00
def render("comment.json", %{comment: comment}) do
comment = %{
"actor" => comment.actor.url,
"uuid" => comment.uuid,
# The activity should have attributedTo, not the comment itself
# "attributedTo" => comment.attributed_to,
2018-08-24 11:34:00 +02:00
"type" => "Note",
2018-11-12 09:05:31 +01:00
"id" => comment.url,
"content" => comment.text,
"mediaType" => "text/html",
"published" => Timex.format!(comment.inserted_at, "{ISO:Extended}"),
"updated" => Timex.format!(comment.updated_at, "{ISO:Extended}")
2018-08-24 11:34:00 +02:00
}
2018-11-12 09:05:31 +01:00
Map.merge(comment, Utils.make_json_ld_header())
2018-08-24 11:34:00 +02:00
end
def render("category.json", %{category: category}) do
2018-11-12 09:05:31 +01:00
%{
"identifier" => category.id,
"name" => category.title
}
end
def render("category.json", %{category: nil}) do
nil
end
end