summaryrefslogtreecommitdiff
path: root/lib/pleroma/web/ostatus/ostatus_controller.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/web/ostatus/ostatus_controller.ex')
-rw-r--r--lib/pleroma/web/ostatus/ostatus_controller.ex30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/pleroma/web/ostatus/ostatus_controller.ex b/lib/pleroma/web/ostatus/ostatus_controller.ex
new file mode 100644
index 000000000..4db4a55e6
--- /dev/null
+++ b/lib/pleroma/web/ostatus/ostatus_controller.ex
@@ -0,0 +1,30 @@
+defmodule Pleroma.Web.OStatus.OStatusController do
+ use Pleroma.Web, :controller
+
+ alias Pleroma.{User, Activity}
+ alias Pleroma.Web.OStatus.FeedRepresenter
+ alias Pleroma.Repo
+ import Ecto.Query
+
+ def feed(conn, %{"nickname" => nickname}) do
+ user = User.get_cached_by_nickname(nickname)
+ query = from activity in Activity,
+ where: fragment("? @> ?", activity.data, ^%{actor: user.ap_id}),
+ limit: 20,
+ order_by: [desc: :inserted_at]
+
+ activities = query
+ |> Repo.all
+
+ response = FeedRepresenter.to_simple_form(user, activities, [user])
+ |> :xmerl.export_simple(:xmerl_xml)
+
+ conn
+ |> put_resp_content_type("application/atom+xml")
+ |> send_resp(200, response)
+ end
+
+ def temp(conn, params) do
+ IO.inspect(params)
+ end
+end