class FeatureChannel::Subscriber::MessageProcessor
Constants
- OPERATIONS
Public Class Methods
new(message:, model:)
click to toggle source
# File lib/feature_channel/subscriber/message_processor.rb, line 12 def initialize(message:, model:) @model = model @message = message end
Public Instance Methods
run!()
click to toggle source
# File lib/feature_channel/subscriber/message_processor.rb, line 17 def run! method(operation_callback).call(model: @model, params: entity_params) end
Private Instance Methods
create_entity(model:, params:)
click to toggle source
# File lib/feature_channel/subscriber/message_processor.rb, line 31 def create_entity(model:, params:) model.create(params.slice(*model.column_names)) end
delete_entity(model:, params:)
click to toggle source
# File lib/feature_channel/subscriber/message_processor.rb, line 40 def delete_entity(model:, params:) entity = model.find(params['id']) entity&.delete end
entity_params()
click to toggle source
# File lib/feature_channel/subscriber/message_processor.rb, line 23 def entity_params @message['payload'].merge('id' => @message['id']) end
operation_callback()
click to toggle source
# File lib/feature_channel/subscriber/message_processor.rb, line 27 def operation_callback OPERATIONS[@message['type']] end
update_entity(model:, params:)
click to toggle source
# File lib/feature_channel/subscriber/message_processor.rb, line 35 def update_entity(model:, params:) entity = model.find(params['id']) entity&.update(params.slice(*model.column_names)) end