MastoAPI: Set user id on replies.
authorRoger Braun <roger@rogerbraun.net>
Fri, 15 Sep 2017 06:49:31 +0000 (08:49 +0200)
committerRoger Braun <roger@rogerbraun.net>
Fri, 15 Sep 2017 06:49:31 +0000 (08:49 +0200)
lib/pleroma/web/mastodon_api/views/status_view.ex

index e561b32fe929f337ab33f071cf79ff8701c2fd34..550ecb74f6f11e82dec90450504cda45539061eb 100644 (file)
@@ -1,7 +1,7 @@
 defmodule Pleroma.Web.MastodonAPI.StatusView do
   use Pleroma.Web, :view
   alias Pleroma.Web.MastodonAPI.{AccountView, StatusView}
-  alias Pleroma.User
+  alias Pleroma.{User, Activity}
 
   def render("index.json", opts) do
     render_many(opts.activities, StatusView, "status.json", opts)
@@ -31,13 +31,17 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
     |> NaiveDateTime.to_iso8601
     |> String.replace(~r/(\.\d+)?$/, ".000Z", global: false)
 
+    # TODO: Add cached version.
+    reply_to = Activity.get_create_activity_by_object_ap_id(object["inReplyTo"])
+    reply_to_user = reply_to && User.get_cached_by_ap_id(reply_to.data["actor"])
+
     %{
       id: activity.id,
       uri: object["id"],
       url: object["external_url"],
       account: AccountView.render("account.json", %{user: user}),
-      in_reply_to_id: object["inReplyToStatusId"],
-      in_reply_to_account_id: nil,
+      in_reply_to_id: reply_to && reply_to.id,
+      in_reply_to_account_id: reply_to_user && reply_to_user.id,
       reblog: nil,
       content: HtmlSanitizeEx.basic_html(object["content"]),
       created_at: created_at,