Return note objects as ostatus post activities.
[akkoma] / lib / pleroma / web / ostatus / ostatus_controller.ex
index 4174db786c688c69826ad964a6dfd8a2b51d1674..6a4199846ba596d7833d856176d8f0bcbb0c596e 100644 (file)
@@ -4,8 +4,14 @@ defmodule Pleroma.Web.OStatus.OStatusController do
   alias Pleroma.{User, Activity}
   alias Pleroma.Web.OStatus.FeedRepresenter
   alias Pleroma.Repo
+  alias Pleroma.Web.OStatus
   import Ecto.Query
 
+  def feed_redirect(conn, %{"nickname" => nickname}) do
+    user = User.get_cached_by_nickname(nickname)
+    redirect conn, external: OStatus.feed_path(user)
+  end
+
   def feed(conn, %{"nickname" => nickname}) do
     user = User.get_cached_by_nickname(nickname)
     query = from activity in Activity,
@@ -35,4 +41,19 @@ defmodule Pleroma.Web.OStatus.OStatusController do
     conn
     |> send_resp(200, "")
   end
+
+  def object(conn, %{"uuid" => uuid}) do
+    IO.inspect(uuid)
+    id = o_status_url(conn, :object, uuid)
+    activity = Activity.get_create_activity_by_object_ap_id(id)
+    user = User.get_cached_by_ap_id(activity.data["actor"])
+
+    response = FeedRepresenter.to_simple_form(user, [activity], [user])
+    |> :xmerl.export_simple(:xmerl_xml)
+    |> to_string
+
+    conn
+    |> put_resp_content_type("application/atom+xml")
+    |> send_resp(200, response)
+  end
 end