Sha256: 2dd3d8f8743e1a5cd2f2d901024217aa80e839b346cc15ffb8fd9371cb1bd609

Contents?: true

Size: 789 Bytes

Versions: 2

Compression:

Stored size: 789 Bytes

Contents

# frozen_string_literal: true

module TijuanaClient
  class ValidationError < StandardError; end
  class EmailValidationError < StandardError; end

  class ErrorMiddleware < Faraday::Response::RaiseError
    def on_complete(env)
      case env[:status]
      when 400
        if env.body.present?
          response = JSON.parse(env.body)
          if response['email']&.include?('is invalid')
            raise TijuanaClient::EmailValidationError, response_values(env).to_s
          else
            raise TijuanaClient::ValidationError, response_values(env).to_s
          end
        else
          raise TijuanaClient::ValidationError, response_values(env).to_s
        end
      when 400..600
        raise Faraday::ClientError, response_values(env).to_s
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tijuana_client-0.3.1 lib/tijuana_client/error_middleware.rb
tijuana_client-0.3.0 lib/tijuana_client/error_middleware.rb