module Coinbase::Wallet
Constants
- API_VERSION
- BASE_API_URL
- VERSION
Public Class Methods
check_response_status(resp)
click to toggle source
# File lib/coinbase/wallet/api_errors.rb, line 11 def self.check_response_status(resp) (resp.body['warnings'] || []).each do |warning| message = "WARNING: #{warning['message']}" message += " (#{warning['url']})" if warning["url"] $stderr.puts message end # OAuth2 errors if resp.status >= 400 && resp.body['error'] raise APIError, resp.body['error_description'] end # Regular errors if resp.body['errors'] case resp.status when 400 case resp.body['errors'].first['id'] when 'param_required' then raise ParamRequiredError, format_error(resp) when 'invalid_request' then raise InvalidRequestError, format_error(resp) when 'personal_details_required' then raise PersonalDetailsRequiredError, format_error(resp) end raise BadRequestError, format_error(resp) when 401 case resp.body['errors'].first['id'] when 'authentication_error' then raise AuthenticationError, format_error(resp) when 'unverified_email' then raise UnverifiedEmailError, format_error(resp) when 'invalid_token' then raise InvalidTokenError, format_error(resp) when 'revoked_token' then raise RevokedTokenError, format_error(resp) when 'expired_token' then raise ExpiredTokenError, format_error(resp) end raise AuthenticationError, format_error(resp) when 402 then raise TwoFactorRequiredError, format_error(resp) when 403 then raise InvalidScopeError, format_error(resp) when 404 then raise NotFoundError, format_error(resp) when 422 then raise ValidationError, format_error(resp) when 429 then raise RateLimitError, format_error(resp) when 500 then raise InternalServerError, format_error(resp) when 503 then raise ServiceUnavailableError, format_error(resp) end end if resp.status > 400 raise APIError, "[#{resp.status}] #{resp.body}" end end
format_error(resp)
click to toggle source
# File lib/coinbase/wallet/api_errors.rb, line 3 def self.format_error(resp) error = resp.body && (resp.body['errors'] || resp.body['warnings']).first return resp.body unless error message = error['message'] message += " (#{error['url']})" if error["url"] message end