Sha256: 90af4c7fae7ef9bfa8c1d968b5a2553801a05f00aa5598a939a02c278f1e882b
Contents?: true
Size: 1.49 KB
Versions: 1
Compression:
Stored size: 1.49 KB
Contents
module Shipay class ShipayError < StandardError end class ConnectionError < ShipayError attr_reader :error def initialize(error) @error = error super error.message end end class RequestError < ShipayError end class ResponseError < ShipayError attr_reader :request_params, :error def initialize(request_params, error, message=nil) @request_params, @error = request_params, error msg = @error.message msg += " => " + message if message super msg end end class NotFound < ResponseError attr_reader :response def initialize(response, request_params, error) @response = response super request_params, error end end class ValidationError < ShipayError attr_reader :response, :errors def initialize(response) @response = response @errors = response['message']&.map do |message| params = error.values_at('message', 'parameter_name', 'type', 'url') ParamError.new(*params) end super @errors&.map(&:message).join(', ') end def to_h @errors.map(&:to_h) end end class MissingCredentialsError < ShipayError end class ParamError < ShipayError attr_reader :parameter_name, :type, :url def initialize(message, parameter_name, type, url=nil) @parameter_name, @type, @url = parameter_name, type, url super message end def to_h { parameter_name: parameter_name, type: type, message: message } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
shipay-0.1.5 | lib/shipay/errors.rb |