Class: Federails::Server::ActivitiesController

Inherits:
Federails::ServerController show all
Includes:
RenderCollections
Defined in:
app/controllers/federails/server/activities_controller.rb

Instance Method Summary collapse

Methods included from RenderCollections

#render_collection, #render_collection_page

Instance Method Details

#createObject

POST /federation/actors/1/inbox



31
32
33
34
35
36
37
38
39
40
41
42
# File 'app/controllers/federails/server/activities_controller.rb', line 31

def create
  skip_authorization

  payload = payload_from_params
  return head Federails::Utils::ResponseCodes::UNPROCESSABLE_CONTENT unless payload

  if Fediverse::Inbox.dispatch_request(payload)
    head :created
  else
    head Federails::Utils::ResponseCodes::UNPROCESSABLE_CONTENT
  end
end

#outboxObject

GET /federation/activities GET /federation/actors/1/outbox.json



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/controllers/federails/server/activities_controller.rb', line 12

def outbox
  authorize Federails::Activity, policy_class: Federails::Server::ActivityPolicy

  actor            = Actor.find_param(params[:actor_id])
  activities       = policy_scope(Federails::Activity, policy_scope_class: Federails::Server::ActivityPolicy::Scope).where(actor: actor).order(created_at: :desc)

  render_collection(
    collection: activities.page(params[:page]),
    actor:      actor,
    url_helper: :server_actor_outbox_url
  ) do |builder, items|
    builder.array! items, partial: 'federails/server/activities/activity', as: :activity, context: false
  end
end

#showObject

GET /federation/actors/1/activities/1.json



28
# File 'app/controllers/federails/server/activities_controller.rb', line 28

def show; end