X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fpleroma%2Fweb%2Factivity_pub%2Factivity_pub_controller.ex;h=835e8bd9de586cb206a115a9cdc9751d48d99c69;hb=297a2c7d3f2f4e79d05ed799e7bb20ed27b35a9c;hp=8080a2b1e5afcd8f5e566ca0345c650a4e378f4c;hpb=68752b20475162705837421e446166892421cf21;p=akkoma diff --git a/lib/pleroma/web/activity_pub/activity_pub_controller.ex b/lib/pleroma/web/activity_pub/activity_pub_controller.ex index 8080a2b1e..835e8bd9d 100644 --- a/lib/pleroma/web/activity_pub/activity_pub_controller.ex +++ b/lib/pleroma/web/activity_pub/activity_pub_controller.ex @@ -1,9 +1,11 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubController do use Pleroma.Web, :controller - alias Pleroma.{User, Repo, Object} + alias Pleroma.{User, Repo, Object, Activity} alias Pleroma.Web.ActivityPub.{ObjectView, UserView, Transmogrifier} alias Pleroma.Web.ActivityPub.ActivityPub + require Logger + action_fallback :errors def user(conn, %{"nickname" => nickname}) do @@ -23,14 +25,29 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubController do # TODO: Ensure that this inbox is a recipient of the message def inbox(%{assigns: %{valid_signature: true}} = conn, params) do # File.write("/tmp/incoming.json", Poison.encode!(params)) + # Logger.info(Poison.encode!(params, [pretty: 2])) with {:ok, _user} <- ap_enabled_actor(params["actor"]), + nil <- Activity.get_by_ap_id(params["id"]), {:ok, activity} <- Transmogrifier.handle_incoming(params) do json(conn, "ok") else - e -> IO.inspect(e) + %Activity{} -> + Logger.info("Already had #{params["id"]}") + json(conn, "ok") + e -> + # Just drop those for now + Logger.info("Unhandled activity") + Logger.info(Poison.encode!(params, [pretty: 2])) + json(conn, "ok") end end + def inbox(conn, params) do + Logger.info("Signature error.") + Logger.info(inspect(conn.req_headers)) + json(conn, "ok") + end + def ap_enabled_actor(id) do user = User.get_by_ap_id(id) if User.ap_enabled?(user) do