Show edited_at in MastodonAPI/show

This commit is contained in:
Tusooa Zhu 2022-06-03 21:47:40 -04:00
parent fdaa864083
commit 3249ac1f12
No known key found for this signature in database
GPG key ID: 7B467EDE43A08224
3 changed files with 33 additions and 0 deletions

View file

@ -73,6 +73,12 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
format: "date-time", format: "date-time",
description: "The date when this status was created" description: "The date when this status was created"
}, },
edited_at: %Schema{
type: :string,
format: "date-time",
nullable: true,
description: "The date when this status was last edited"
},
emojis: %Schema{ emojis: %Schema{
type: :array, type: :array,
items: Emoji, items: Emoji,

View file

@ -258,6 +258,16 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
created_at = Utils.to_masto_date(object.data["published"]) created_at = Utils.to_masto_date(object.data["published"])
edited_at =
with %{"updated" => updated} <- object.data,
date <- Utils.to_masto_date(updated),
true <- date != "" do
date
else
_ ->
nil
end
reply_to = get_reply_to(activity, opts) reply_to = get_reply_to(activity, opts)
reply_to_user = reply_to && CommonAPI.get_user(reply_to.data["actor"]) reply_to_user = reply_to && CommonAPI.get_user(reply_to.data["actor"])
@ -346,6 +356,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
content: content_html, content: content_html,
text: opts[:with_source] && object.data["source"], text: opts[:with_source] && object.data["source"],
created_at: created_at, created_at: created_at,
edited_at: edited_at,
reblogs_count: announcement_count, reblogs_count: announcement_count,
replies_count: object.data["repliesCount"] || 0, replies_count: object.data["repliesCount"] || 0,
favourites_count: like_count, favourites_count: like_count,

View file

@ -246,6 +246,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do
content: HTML.filter_tags(object_data["content"]), content: HTML.filter_tags(object_data["content"]),
text: nil, text: nil,
created_at: created_at, created_at: created_at,
edited_at: nil,
reblogs_count: 0, reblogs_count: 0,
replies_count: 0, replies_count: 0,
favourites_count: 0, favourites_count: 0,
@ -708,4 +709,19 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do
status = StatusView.render("show.json", activity: visible, for: poster) status = StatusView.render("show.json", activity: visible, for: poster)
assert status.pleroma.parent_visible assert status.pleroma.parent_visible
end end
test "it shows edited_at" do
poster = insert(:user)
{:ok, post} = CommonAPI.post(poster, %{status: "hey"})
status = StatusView.render("show.json", activity: post)
refute status.edited_at
{:ok, _} = CommonAPI.update(poster, post, %{status: "mew mew"})
edited = Pleroma.Activity.normalize(post)
status = StatusView.render("show.json", activity: edited)
assert status.edited_at
end
end end