mobilizon.chapril.org-mobil.../lib/mobilizon_web/views/actor_view.ex

69 lines
1.7 KiB
Elixir

defmodule MobilizonWeb.ActorView do
@moduledoc """
View for Actors
"""
use MobilizonWeb, :view
alias MobilizonWeb.{ActorView, EventView, MemberView}
alias Mobilizon.Actors
def render("index.json", %{actors: actors}) do
%{data: render_many(actors, ActorView, "actor_basic.json")}
end
def render("show.json", %{actor: actor}) do
%{data: render_one(actor, ActorView, "actor.json")}
end
def render("show_basic.json", %{actor: actor}) do
%{data: render_one(actor, ActorView, "actor_basic.json")}
end
def render("actor_basic.json", %{actor: actor}) do
%{
id: actor.id,
username: actor.preferred_username,
domain: actor.domain,
display_name: actor.name,
description: actor.summary,
type: actor.type,
# public_key: actor.public_key,
suspended: actor.suspended,
url: actor.url,
avatar: actor.avatar_url
}
end
def render("actor.json", %{actor: actor}) do
output = %{
id: actor.id,
username: actor.preferred_username,
domain: actor.domain,
display_name: actor.name,
description: actor.summary,
type: actor.type,
# public_key: actor.public_key,
suspended: actor.suspended,
url: actor.url,
avatar: actor.avatar_url,
banner: actor.banner_url,
organized_events: render_many(actor.organized_events, EventView, "event_for_actor.json")
}
import Logger
Logger.debug(inspect(actor.type))
if actor.type == :Group do
Logger.debug("I'm a group !")
Map.put(
output,
:members,
render_many(Actors.members_for_group(actor), MemberView, "member.json")
)
else
Logger.debug("not a group")
output
end
end
end