module Fss::Commandable
Controller concern for handling commands
Public Instance Methods
command(command_params) { || ... }
click to toggle source
# File lib/fss.rb, line 8 def command(command_params) @command_params = command_params yield end
form(form_class)
click to toggle source
# File lib/fss.rb, line 13 def form(form_class) execute_form form_class end
serializer(serializer_class)
click to toggle source
# File lib/fss.rb, line 21 def serializer(serializer_class) execute_serialization serializer_class, service_result.value! if service_result.success? end
service(service_class, *params)
click to toggle source
# File lib/fss.rb, line 17 def service(service_class, *params) execute_service service_class, command_params, *params if validation_result.success? end
Private Instance Methods
command_params()
click to toggle source
# File lib/fss.rb, line 27 def command_params @command_params end
execute_form(form_class)
click to toggle source
# File lib/fss.rb, line 31 def execute_form(form_class) result = form_class.validate(command_params) ? Success(command_params) : Failure(form_class.errors) @validation_result = result end
execute_serialization(serializer_class, params)
click to toggle source
# File lib/fss.rb, line 49 def execute_serialization(serializer_class, params) Success(serializer_class.new(params)) end
execute_service(service_class, *params)
click to toggle source
# File lib/fss.rb, line 40 def execute_service(service_class, *params) result = service_class.call(*params) @service_result = result end
service_result()
click to toggle source
# File lib/fss.rb, line 45 def service_result @service_result end
validation_result()
click to toggle source
# File lib/fss.rb, line 36 def validation_result @validation_result end