module ActiveCampaign::Request

Public Instance Methods

delete(path) click to toggle source

Perform an HTTP DELETE request

# File lib/active-campaign-simple/request.rb, line 26
def delete(path)
  request(:delete, path)
end
get(path) click to toggle source

Perform an GET request

# File lib/active-campaign-simple/request.rb, line 6
def get(path)
  request(:get, path)
end
patch(path, payload: {}) click to toggle source

Perform an HTTP PATCH request

# File lib/active-campaign-simple/request.rb, line 21
def patch(path, payload: {})
  request(:patch, path, payload)
end
post(path, payload: {}) click to toggle source

Perform an HTTP POST request

# File lib/active-campaign-simple/request.rb, line 11
def post(path, payload: {})
  request(:post, path, payload)
end
put(path, payload: {}) click to toggle source

Perform an HTTP PUT request

# File lib/active-campaign-simple/request.rb, line 16
def put(path, payload: {})
  request(:put, path, payload)
end

Private Instance Methods

request(method, path, payload={}) click to toggle source

Perform request

# File lib/active-campaign-simple/request.rb, line 33
def request(method, path, payload={})
  path = "/#{path}" unless path.start_with?('/')
  header = {
    'Api-Token': api_key,
    content_type: :json,
    accept: :json,
  }
  opts = {
    method: method,
    url: api_url + '/api/3' + path,
    headers: header
  }
  opts.merge!( { payload: payload.to_json }) unless payload.empty?
  resp = RestClient::Request.execute(opts)
rescue RestClient::ExceptionWithResponse => err
  # log error?
else
  return JSON.parse(resp.body) if resp.body # Some calls respond w nothing
end