module Shiphawk::Helpers::Request
Constants
- API_PATH
- APP_VERSION
- DEFAULT_HEADERS
Attributes
adapter[R]
api_token[R]
api_version[R]
connection[R]
host_url[R]
Private Instance Methods
get_connection()
click to toggle source
# File lib/shiphawk/helpers/request.rb, line 30 def get_connection raise ArgumentError, 'Incorrect connection information' if host_url.nil? || adapter.nil? @connection ||= Faraday.new(url: host_url) do |conn| conn.request :multipart conn.request :url_encoded conn.request :user_agent, app: 'ShipHawk Client', version: APP_VERSION conn.request :request_id conn.request :request_headers, accept: 'application/json', 'X-API-KEY' => api_token conn.use :extended_logging, logger: Rails.logger conn.response :json, content_type: /\bjson$/ conn.adapter adapter end end
raise_errors(response)
click to toggle source
# File lib/shiphawk/helpers/request.rb, line 48 def raise_errors response case response.status.to_i when 401 fail Shiphawk::Errors::UnauthorizedError, "(#{response.status}): #{response.body['error']}" when 400 fail Shiphawk::Errors::GeneralError, "(#{response.status}): #{response.body['error']}" when 403 fail Shiphawk::Errors::AccessDeniedError, "(#{response.status}): #{response.body['error']}" when 404 fail Shiphawk::Errors::NotFoundError, "(#{response.status}): #{response.body['error']}" when 422 fail Shiphawk::Errors::UnprocessableEntityError, "(#{response.status}): #{response.body['error']}" when 500 fail Shiphawk::Errors::InformShiphawkError, "ShipHawk had an internal error. Please send an email to api@shiphawk.com. (#{response.status}): #{response.body['error']}" when 502..503 fail Shiphawk::Errors::UnavailableError, "(#{response.status}): #{response.body['error']}" end end