Sha256: a1f45510f5e052a5579c91dde87cecc09d89be7cf8c6945d9d4ee75f4654c536

Contents?: true

Size: 1.16 KB

Versions: 3

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

module ConvenientService
  module Service
    module Plugins
      module CanHaveFallbacks
        module Exceptions
          class FallbackResultIsNotOverridden < ::ConvenientService::Exception
            def initialize(service:, status:)
              message = <<~TEXT
                Fallback #{status} result method (#fallback_#{status}_result) of `#{service.class}` is NOT overridden.

                NOTE: Make sure overridden `fallback_#{status}_result` returns `success` with reasonable "null" data.
              TEXT

              super(message)
            end
          end

          class ServiceFallbackReturnValueNotSuccess < ::ConvenientService::Exception
            def initialize(service:, result:, status:)
              message = <<~TEXT
                Return value of service `#{service.class}` `#{status}` fallback is NOT a `success`.
                It is `#{result.status}`.

                Did you accidentally call `failure` or `error` instead of `success` from the `fallback_#{status}_result` method?
              TEXT

              super(message)
            end
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
convenient_service-0.16.0 lib/convenient_service/service/plugins/can_have_fallbacks/exceptions.rb
convenient_service-0.15.0 lib/convenient_service/service/plugins/can_have_fallbacks/exceptions.rb
convenient_service-0.14.0 lib/convenient_service/service/plugins/can_have_fallbacks/exceptions.rb