Class: Eloqua::Api::Base

Inherits:
Object
  • Object
show all
Includes:
UrlHelper
Defined in:
lib/eloqua/api/base.rb

Direct Known Subclasses

Campaign, EloquaExternalAssetsTypes

Instance Method Summary collapse

Methods included from UrlHelper

#extend_params_to_url, #sub_api_version, #sub_id_in_endpoint

Constructor Details

#initialize(access_token:, base_url:) ⇒ Base

Returns a new instance of Base.



11
12
13
# File 'lib/eloqua/api/base.rb', line 11

def initialize(access_token:, base_url:)
  @client = Eloqua::Api::Client.new(access_token: access_token, base_url: base_url)
end

Instance Method Details

#execute(request_payload) ⇒ Object



15
16
17
18
19
# File 'lib/eloqua/api/base.rb', line 15

def execute(request_payload)
  @client.call(api_endpoint: request_payload[:endpoint],
               method_type: request_payload[:method],
               params: request_payload[:params])
end

#load_and_execute(api:, id: '', search_params: {}, query_params: {}, payload: {}) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/eloqua/api/base.rb', line 21

def load_and_execute(api:, id: '', search_params: {}, query_params: {}, payload: {})
  request_payload = ELOQUA_ENDPOINTS[api.to_sym].dup
  unless nil_or_empty?(id.to_s)
    request_payload[:endpoint] =
      sub_id_in_endpoint(request_payload[:endpoint], id.to_s)
  end
  unless nil_or_empty?(search_params) && nil_or_empty?(query_params)
    request_payload[:endpoint] = extend_params_to_url(endpoint: request_payload[:endpoint],
                                                      query_params: query_params,
                                                      search_params: search_params)
  end
  request_payload[:params] = payload.to_json unless nil_or_empty?(payload)
  execute(request_payload)
end