class AliexpressAPI::Connection

Public Instance Methods

get(path, params: {}) click to toggle source
# File lib/aliexpress_api/connection.rb, line 7
def get(path, params: {})
  handle_request { HTTP.get(path, params: params) }
end
post(path, params: {}) click to toggle source
# File lib/aliexpress_api/connection.rb, line 11
def post(path, params: {})
  handle_request { HTTP.post(path, form: params) }
end

Private Instance Methods

handle_request() { || ... } click to toggle source
# File lib/aliexpress_api/connection.rb, line 17
def handle_request
  response = yield
  handle_response response
rescue HTTP::ConnectionError => e
  raise ConnectionError, e.message
rescue HTTP::RequestError => e
  raise RequestError, e.message
rescue HTTP::TimeoutError => e
  raise TimeoutError, e.message
rescue HTTP::HeaderError => e
  raise HeaderError, e.message
rescue HTTP::Error => e
  raise Error, e.message
end
handle_response(response) click to toggle source
# File lib/aliexpress_api/connection.rb, line 32
def handle_response(response)
  case response.code.to_i
  when 301
    raise RedirectionError, response
  when 200
    response.parse(:json)
  when 400
    raise BadRequestError, response
  when 401
    raise UnauthorizedAccessError, response
  when 403
    raise ForbiddenAccessError, response
  when 404
    raise ResourceNotFoundError, response
  when 422
    raise ResourceInvalidError, response
  when 429
    raise TooManyRequestsError, response
  when 500
    raise ServerError, response
  else
    raise ResponseError.new(response, "Unknown response code: #{response.code}")
  end
end