postland/lib/postland_web/controllers/inbox_controller.ex
2024-09-29 19:53:00 -05:00

25 lines
616 B
Elixir

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.record_activity(params) do
{:ok, _activity} ->
send_resp(conn, 200, "ok")
error ->
Logger.error(error)
send_resp(conn, 422, "unprocessable_entity")
end
else
Logger.info("Failed to verify type=#{Map.get(params, "type")}")
send_resp(conn, 403, "forbidden")
end
end
end