defmodule NullaWeb.ActivityJSON do alias Nulla.Activities.Activity @doc """ Renders a list of activities. """ def index(%{activities: activities}) do %{data: for(activity <- activities, do: data(activity))} end @doc """ Renders a single activity. """ def show(%{activity: activity}) do %{data: data(activity)} end defp data(%Activity{} = activity) do %{ id: activity.id, ap_id: activity.ap_id, type: activity.type, actor: activity.actor, object: activity.object, to: activity.to, cc: activity.cc } end def activitypub(%Activity{} = activity) do Jason.OrderedObject.new( "@context": "https://www.w3.org/ns/activitystreams", id: activity.ap_id, type: activity.type, actor: activity.actor, object: activity.object, to: activity.to, cc: activity.cc ) end end