about summary refs log tree commit diff
path: root/app/views/api
diff options
context:
space:
mode:
authorEvan Minto <evan.minto@gmail.com>2017-04-25 06:06:06 -0700
committerEugen Rochko <eugen@zeonfederated.com>2017-04-25 15:06:06 +0200
commit122d59ac41a0c637b19357c2b7422002ffa0381c (patch)
tree150a8793fcc7d51793a24b2b1df900025799dc73 /app/views/api
parent8b5179d006a07cf759e751e9d883bfe472cee868 (diff)
Change ActivityPub paging to match spec. Clean up ActivityPub outbox changes. (#2410)
* Change ActivityPub paging to match spec. Clean up ActivityPub outbox changes.

* Fix code style and test failures for OutboxController.

* Attempt to fix CI errors.
Diffstat (limited to 'app/views/api')
-rw-r--r--app/views/api/activitypub/outbox/show.activitystreams2.rabl21
-rw-r--r--app/views/api/activitypub/outbox/show_page.activitystreams2.rabl16
2 files changed, 21 insertions, 16 deletions
diff --git a/app/views/api/activitypub/outbox/show.activitystreams2.rabl b/app/views/api/activitypub/outbox/show.activitystreams2.rabl
index a498f74bc..273b15e82 100644
--- a/app/views/api/activitypub/outbox/show.activitystreams2.rabl
+++ b/app/views/api/activitypub/outbox/show.activitystreams2.rabl
@@ -1,23 +1,12 @@
-if @paginated
-  extends 'activitypub/types/ordered_collection_page.activitystreams2.rabl'
-else
-  extends 'activitypub/types/ordered_collection.activitystreams2.rabl'
-end
+extends 'activitypub/types/ordered_collection.activitystreams2.rabl'
 
 object @account
 
-node(:items) do
-  @statuses.map { |status| api_activitypub_status_url(status) }
-end
-
 node(:totalItems) { @statuses.count }
-node(:next)       { @next_path } if @next_path
-node(:prev)       { @prev_path } if @prev_path
+node(:current)    { @first_page_url } if @first_page_url
+node(:first)      { @first_page_url } if @first_page_url
+node(:last)       { @last_page_url } if @last_page_url
 
 node(:name)       { |account| t('activitypub.outbox.name', account_name: account_name(account)) }
 node(:summary)    { |account| t('activitypub.outbox.summary', account_name: account_name(account)) }
-node(:updated) do |account|
-  times = @statuses.map { |status| status.updated_at.to_time }
-  times << account.created_at.to_time
-  times.max.xmlschema
-end
+node(:updated)    { |account| (@statuses.empty? ? account.created_at.to_time : @statuses.first.updated_at.to_time).xmlschema }
diff --git a/app/views/api/activitypub/outbox/show_page.activitystreams2.rabl b/app/views/api/activitypub/outbox/show_page.activitystreams2.rabl
new file mode 100644
index 000000000..b6433ccf2
--- /dev/null
+++ b/app/views/api/activitypub/outbox/show_page.activitystreams2.rabl
@@ -0,0 +1,16 @@
+extends 'activitypub/types/ordered_collection_page.activitystreams2.rabl'
+
+object @account
+
+node(:items) do
+  @statuses.map { |status| api_activitypub_status_url(status) }
+end
+
+node(:next)       { @next_page_url } if @next_page_url
+node(:prev)       { @prev_page_url } if @prev_page_url
+node(:current)    { @first_page_url } if @first_page_url
+node(:first)      { @first_page_url } if @first_page_url
+node(:last)       { @last_page_url } if @last_page_url
+node(:partOf)     { @part_of_url } if @part_of_url
+
+node(:updated)    { |account| (@statuses.empty? ? account.created_at.to_time : @statuses.first.updated_at.to_time).xmlschema }