Class: ConvenientService::Service::Plugins::CanHaveFallbacks::Middleware

Inherits:
MethodChainMiddleware
  • Object
show all
Defined in:
lib/convenient_service/service/plugins/can_have_fallbacks/middleware.rb

Instance Method Summary collapse

Instance Method Details

#nextConvenientService::Service::Plugins::HasJSendResult::Entities::Result

Note:

Both ‘fallback_failure_result`, `fallback_error_result` and `fallback_result` are always successful, that is why their statuses are pre-checked.



15
16
17
18
19
20
21
22
# File 'lib/convenient_service/service/plugins/can_have_fallbacks/middleware.rb', line 15

def next(...)
  fallback_result = chain.next(...)

  ::ConvenientService.raise Exceptions::ServiceFallbackReturnValueNotSuccess.new(service: entity, result: fallback_result, status: status) unless fallback_result.success?

  fallback_result.copy(overrides: {kwargs: {method => true}})
    .tap { |result| result.success? }
end