Class: SolidObjects::TransmissionsController

Inherits:
ActionController::API show all
Defined in:
app/controllers/solid_objects/transmissions_controller.rb,
sig/generated/controllers/solid_objects/transmissions_controller.rbs

Instance Method Summary collapse

Instance Method Details

#authorized_transmission?(envelope) ⇒ Boolean

RBS:

  • (untyped) -> bool

Parameters:

  • (Object)

Returns:

  • (Boolean)


25
26
27
28
29
30
# File 'app/controllers/solid_objects/transmissions_controller.rb', line 25

def authorized_transmission?(envelope)
  SolidObjects.configuration.authorize_transmission.call(
    envelope:,
    authorization_context: self
  )
end

#createvoid

This method returns an undefined value.

RBS:

  • () -> void



8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/controllers/solid_objects/transmissions_controller.rb', line 8

def create
  envelope = JSON.parse(request.body.read)
  return head :forbidden unless authorized_transmission?(envelope)

  Transmission.receive(
    envelope,
    resolve_actor_type: SolidObjects.configuration.transmission_actor_type_resolver
  )
  head :ok
rescue JSON::ParserError, InvalidTransmission, UnknownActorType, UnknownMessage,
  PayloadTooLarge, IdempotencyConflict
  head :unprocessable_entity
end