Add outbox attribute to instance actor (#14721)
It's not useful for now, but it's required by ActivityPub
This commit is contained in:
parent
cb37bd63dc
commit
1a3405005a
4 changed files with 19 additions and 6 deletions
|
@ -20,9 +20,9 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController
|
|||
def outbox_presenter
|
||||
if page_requested?
|
||||
ActivityPub::CollectionPresenter.new(
|
||||
id: account_outbox_url(@account, page_params),
|
||||
id: outbox_url(page_params),
|
||||
type: :ordered,
|
||||
part_of: account_outbox_url(@account),
|
||||
part_of: outbox_url,
|
||||
prev: prev_page,
|
||||
next: next_page,
|
||||
items: @statuses
|
||||
|
@ -32,12 +32,20 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController
|
|||
id: account_outbox_url(@account),
|
||||
type: :ordered,
|
||||
size: @account.statuses_count,
|
||||
first: account_outbox_url(@account, page: true),
|
||||
last: account_outbox_url(@account, page: true, min_id: 0)
|
||||
first: outbox_url(page: true),
|
||||
last: outbox_url(page: true, min_id: 0)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def outbox_url(**kwargs)
|
||||
if params[:account_username].present?
|
||||
account_outbox_url(@account, **kwargs)
|
||||
else
|
||||
instance_actor_outbox_url(**kwargs)
|
||||
end
|
||||
end
|
||||
|
||||
def next_page
|
||||
account_outbox_url(@account, page: true, max_id: @statuses.last.id) if @statuses.size == LIMIT
|
||||
end
|
||||
|
@ -65,4 +73,8 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController
|
|||
def page_params
|
||||
{ page: true, max_id: params[:max_id], min_id: params[:min_id] }.compact
|
||||
end
|
||||
|
||||
def set_account
|
||||
@account = params[:account_username].present? ? Account.find_local!(username_param) : Account.representative
|
||||
end
|
||||
end
|
||||
|
|
|
@ -17,6 +17,6 @@ class InstanceActorsController < ApplicationController
|
|||
end
|
||||
|
||||
def restrict_fields_to
|
||||
%i(id type preferred_username inbox public_key endpoints url manually_approves_followers)
|
||||
%i(id type preferred_username inbox outbox public_key endpoints url manually_approves_followers)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -74,7 +74,7 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
|
|||
end
|
||||
|
||||
def outbox
|
||||
account_outbox_url(object)
|
||||
object.instance_actor? ? instance_actor_outbox_url : account_outbox_url(object)
|
||||
end
|
||||
|
||||
def featured
|
||||
|
|
|
@ -37,6 +37,7 @@ Rails.application.routes.draw do
|
|||
|
||||
resource :instance_actor, path: 'actor', only: [:show] do
|
||||
resource :inbox, only: [:create], module: :activitypub
|
||||
resource :outbox, only: [:show], module: :activitypub
|
||||
end
|
||||
|
||||
devise_scope :user do
|
||||
|
|
Loading…
Reference in a new issue