Browse Source

MastoAPI: Fix date in account view.

tags/v0.9.9
Roger Braun 6 years ago
parent
commit
d659fcc195
4 changed files with 23 additions and 7 deletions
  1. +17
    -0
      lib/pleroma/web/common_api/utils.ex
  2. +2
    -1
      lib/pleroma/web/mastodon_api/views/account_view.ex
  3. +2
    -4
      lib/pleroma/web/mastodon_api/views/status_view.ex
  4. +2
    -2
      test/web/mastodon_api/account_view_test.exs

+ 17
- 0
lib/pleroma/web/common_api/utils.ex View File

@@ -119,6 +119,23 @@ defmodule Pleroma.Web.CommonAPI.Utils do
end
end

def to_masto_date(%NaiveDateTime{} = date) do
date
|> NaiveDateTime.to_iso8601
|> String.replace(~r/(\.\d+)?$/, ".000Z", global: false)
end

def to_masto_date(date) do
try do
date
|> NaiveDateTime.from_iso8601!
|> NaiveDateTime.to_iso8601
|> String.replace(~r/(\.\d+)?$/, ".000Z", global: false)
rescue
_e -> ""
end
end

defp shortname(name) do
if String.length(name) < 30 do
name


+ 2
- 1
lib/pleroma/web/mastodon_api/views/account_view.ex View File

@@ -2,6 +2,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
use Pleroma.Web, :view
alias Pleroma.User
alias Pleroma.Web.MastodonAPI.AccountView
alias Pleroma.Web.CommonAPI.Utils

defp image_url(%{"url" => [ %{ "href" => href } | t ]}), do: href
defp image_url(_), do: nil
@@ -22,7 +23,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
acct: user.nickname,
display_name: user.name,
locked: false,
created_at: user.inserted_at,
created_at: Utils.to_masto_date(user.inserted_at),
followers_count: user_info.follower_count,
following_count: user_info.following_count,
statuses_count: user_info.note_count,


+ 2
- 4
lib/pleroma/web/mastodon_api/views/status_view.ex View File

@@ -2,6 +2,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
use Pleroma.Web, :view
alias Pleroma.Web.MastodonAPI.{AccountView, StatusView}
alias Pleroma.{User, Activity}
alias Pleroma.Web.CommonAPI.Utils

def render("index.json", opts) do
render_many(opts.activities, StatusView, "status.json", opts)
@@ -26,10 +27,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do

attachments = render_many(object["attachment"] || [], StatusView, "attachment.json", as: :attachment)

created_at = (object["published"] || "")
|> NaiveDateTime.from_iso8601!
|> NaiveDateTime.to_iso8601
|> String.replace(~r/(\.\d+)?$/, ".000Z", global: false)
created_at = Utils.to_masto_date(object["published"])

# TODO: Add cached version.
reply_to = Activity.get_create_activity_by_object_ap_id(object["inReplyTo"])


+ 2
- 2
test/web/mastodon_api/account_view_test.exs View File

@@ -5,7 +5,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
alias Pleroma.User

test "Represent a user account" do
user = insert(:user, %{info: %{"note_count" => 5, "follower_count" => 3}, nickname: "shp@shitposter.club"})
user = insert(:user, %{info: %{"note_count" => 5, "follower_count" => 3}, nickname: "shp@shitposter.club", inserted_at: ~N[2017-08-15 15:47:06.597036]})

expected = %{
id: user.id,
@@ -13,7 +13,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
acct: user.nickname,
display_name: user.name,
locked: false,
created_at: user.inserted_at,
created_at: "2017-08-15T15:47:06.000Z",
followers_count: 3,
following_count: 0,
statuses_count: 5,


Loading…
Cancel
Save