defmodule PostlandWeb.InboxController do use PostlandWeb, :controller require Logger alias ActivityPub.Headers alias Postland.Activities def post(conn, params) do if Headers.verify(conn.method, conn.request_path, conn.req_headers) do case Activities.process_activity(params) do {:ok, _activity} -> Plug.Conn.send_resp(conn, 200, Jason.encode!(params)) error -> Logger.error(error) Plug.Conn.send_resp(conn, 422, "unprocessable entity") end else Plug.Conn.send_resp(conn, 403, "forbidden") end end end