Sha256: cab06e17de6510e9474c8c8f5269e8975e868decb7600b4ad288522975fd67f0
Contents?: true
Size: 1.08 KB
Versions: 3
Compression:
Stored size: 1.08 KB
Contents
# frozen_string_literal: true module ConvenientService module Service module Plugins module CanHaveFallbacks class Middleware < MethodChainMiddleware intended_for [:fallback_failure_result, :fallback_error_result], entity: :service ## # @return [ConvenientService::Service::Plugins::HasJSendResult::Entities::Result] # # @note Both `fallback_failure_result` and `fallback_error_result` are always successful, that is why their statuses are pre-checked. # def next(...) fallback_result = chain.next(...) 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 private ## # @return [Symbol] # def status middleware_arguments.kwargs.fetch(:status) end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems