Class: ActiveCampaign::API

Inherits:
Object
  • Object
show all
Defined in:
lib/active_campaign/api.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeAPI

Returns a new instance of API.



7
8
9
# File 'lib/active_campaign/api.rb', line 7

def initialize
  setup
end

Instance Attribute Details

#connectionObject (readonly)

Returns the value of attribute connection.



5
6
7
# File 'lib/active_campaign/api.rb', line 5

def connection
  @connection
end

Instance Method Details

#request(opts = {}) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/active_campaign/api.rb', line 29

def request(opts = {})
  method  = opts.delete(:_method)
  path    = opts.delete(:_path)
  headers = opts.delete(:_headers)

  opts.delete_if { |key, _| key.to_s =~ /^_/ } # Remove all internal parameters

  response = @connection.send method do |request|
    request.headers.merge!(headers) if headers

    if method == :get
      request.url path, opts
    else
      request.url path
      request.body = opts
    end
  end

  {
    parsed_data: response.env[:parsed_data],
    _response: response
  }
end

#setupObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/active_campaign/api.rb', line 11

def setup
  @connection = Faraday.new(::ActiveCampaign.config.api_url) do |f|
    f.request :json
    f.response :json, content_type: "application/json"

    f.use ::ActiveCampaign::ResponseParser
    f.use Faraday::Request::UrlEncoded

    f.adapter Faraday.default_adapter
  end

  @connection.headers["Api-Token"] = ::ActiveCampaign.config.api_key
  @connection.headers["User-Agent"] = "Ruby ActiveCampaign (ractive_campaign)"

  self
end