defmodule ClacksWeb.ActivitiesController do use ClacksWeb, :controller alias Clacks.{ActivityPub, Activity} alias ClacksWeb.Router.Helpers, as: Routes alias ClacksWeb.Endpoint def get(conn, _params) do ap_id = current_url(conn, %{}) case Activity.get_by_ap_id(ap_id) do %Activity{local: true, id: id, data: data} -> case conn.assigns[:format] do "activity+json" -> json(conn, data) "html" -> redirect(conn, to: Routes.frontend_path(Endpoint, :status, id)) end _ -> case conn.assigns[:format] do "activity+json" -> conn |> put_status(404) |> json(%{error: "Not Found"}) "html" -> resp(conn, 404, "Not Found") end end end def get_status(conn, %{"id" => status_id}) do case Activity.get(status_id) do %Activity{local: true, data: data} -> json(conn, data) _ -> conn |> put_status(404) |> json(%{error: "Not Found"}) end end end