class Eloqua::Api::Client
provides single source of setting and calling apis
Public Class Methods
new(access_token:, base_url:, authorization_type: DEFAULT_AUTHORIZATION_TYPE)
click to toggle source
# File lib/eloqua/api/client.rb, line 12 def initialize(access_token:, base_url:, authorization_type: DEFAULT_AUTHORIZATION_TYPE) self.class.base_uri sub_api_version(url: base_url) self.class.headers http_headers(access_token, authorization_type) end
Public Instance Methods
call(api_endpoint:, method_type: :get, params: {})
click to toggle source
# File lib/eloqua/api/client.rb, line 17 def call(api_endpoint:, method_type: :get, params: {}) puts api_endpoint puts self.class.base_uri request_response = self.class.send(method_type, api_endpoint, body: params) return request_response.parsed_response if response_successful?(request_response) raise error_class(request_response), "Code: #{request_response.code}, response: #{request_response.parsed_response}" end
Private Instance Methods
error_class(response)
click to toggle source
# File lib/eloqua/api/client.rb, line 29 def error_class(response) case response.code when HTTP_BAD_REQUEST_CODE BadRequestError when HTTP_UNAUTHORIZED_CODE UnAuthorizedError when HTTP_FORBIDDEN_CODE ForbiddenError when HTTP_NOT_FOUND_CODE NotFoundError when HTTP_SERVER_ERROR ServerError else StandardError end end
http_headers(access_token, authorization_type)
click to toggle source
# File lib/eloqua/api/client.rb, line 46 def http_headers(access_token, authorization_type) { 'Content-Type' => 'application/json', 'Authorization' => format("#{authorization_type} %s", access_token), 'Accept' => 'application/json' } end
response_successful?(response)
click to toggle source
# File lib/eloqua/api/client.rb, line 54 def response_successful?(response) response.code == 200 || response.code == 201 && (!response.parsed_response.nil? || response.parsed_response != 'Not authenticated.') end