Class: Igniter::Store::Protocol::Handlers::SubscriptionHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/igniter/store/protocol/handlers/subscription_handler.rb

Constant Summary collapse

REQUIRED =
%i[name source].freeze

Instance Method Summary collapse

Constructor Details

#initialize(store) ⇒ SubscriptionHandler

Returns a new instance of SubscriptionHandler.



10
# File 'lib/igniter/store/protocol/handlers/subscription_handler.rb', line 10

def initialize(store) = @store = store

Instance Method Details

#call(descriptor) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/igniter/store/protocol/handlers/subscription_handler.rb', line 12

def call(descriptor)
  missing = REQUIRED.select { |f| descriptor[f].nil? }
  return Receipt.rejection("Missing required fields: #{missing.join(", ")}", kind: :subscription) if missing.any?

  name = descriptor[:name].to_sym
  @store.schema_graph.register_subscription_descriptor(descriptor.merge(name: name))
  Receipt.accepted(kind: :subscription, name: name)
end