Return note objects as ostatus post activities.
This commit is contained in:
parent
018a1a390f
commit
9c42453e06
4 changed files with 31 additions and 2 deletions
|
@ -126,7 +126,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub 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
|
||||
|
|
|
@ -41,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
|
||||
|
|
|
@ -73,6 +73,8 @@ defmodule Pleroma.Web.Router 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 @@ end
|
|||
|
||||
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
|
||||
|
|
|
@ -12,4 +12,16 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest 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
|
||||
|
|
Loading…
Reference in a new issue