Return note objects as ostatus post activities.

This commit is contained in:
Roger Braun 2017-05-03 09:54:17 +02:00
parent 018a1a390f
commit 9c42453e06
4 changed files with 31 additions and 2 deletions

View File

@ -126,7 +126,7 @@ def generate_context_id do
end
def generate_object_id do
generate_id("objects")
Pleroma.Web.Router.Helpers.o_status_url(Pleroma.Web.Endpoint, :object, Ecto.UUID.generate)
end
def generate_id(type) do

View File

@ -41,4 +41,19 @@ def salmon_incoming(conn, params) 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

View File

@ -73,6 +73,8 @@ def user_fetcher(username) do
scope "/", Pleroma.Web do
pipe_through :ostatus
get "/objects/:uuid", OStatus.OStatusController, :object
get "/users/:nickname/feed", OStatus.OStatusController, :feed
get "/users/:nickname", OStatus.OStatusController, :feed_redirect
post "/users/:nickname/salmon", OStatus.OStatusController, :salmon_incoming
@ -96,5 +98,5 @@ def user_fetcher(username) do
defmodule Fallback.RedirectController do
use Pleroma.Web, :controller
def redirector(conn, _params), do: send_file(conn, 200, "priv/static/index.html")
def redirector(conn, _params), do: (if Mix.env != :test, do: send_file(conn, 200, "priv/static/index.html"))
end

View File

@ -12,4 +12,16 @@ test "gets a feed", %{conn: conn} do
assert response(conn, 200)
end
test "gets an object", %{conn: conn} do
note_activity = insert(:note_activity)
[_, uuid] = hd Regex.scan(~r/.+\/([\w-]+)$/, note_activity.data["object"]["id"])
url = "/objects/#{uuid}"
|> IO.inspect
conn = conn
|> get(url)
assert response(conn, 200)
end
end