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