class ActiveCampaignCrm::Connection
Handles all connections with active campaign
Public Class Methods
new()
click to toggle source
# File lib/active_campaign_crm/connection.rb, line 7 def initialize @connection = Faraday.new( url: "#{ActiveCampaignCrm.configuration.account_url}/api/3" ) end
Public Instance Methods
delete(url)
click to toggle source
# File lib/active_campaign_crm/connection.rb, line 40 def delete(url) response = @connection.delete do |req| req.url url req.headers['Api-Token'] = ActiveCampaignCrm.configuration.api_key end handle_response(response) end
get(url, params = {})
click to toggle source
# File lib/active_campaign_crm/connection.rb, line 13 def get(url, params = {}) response = @connection.get do |req| req.url url req.headers['Api-Token'] = ActiveCampaignCrm.configuration.api_key req.params = params end handle_response(response) end
handle_response(response)
click to toggle source
# File lib/active_campaign_crm/connection.rb, line 48 def handle_response(response) return JSON.parse response.body if response.success? errors = JSON.parse(response.body)['errors'] unless response.body.empty? error_messages = errors.map { |error| error['title'] } unless errors.nil? error_message = error_messages.join('-') unless error_messages.nil? case response.status when 400 raise ActiveCampaignCrm::BadRequest, error_message when 404 raise ActiveCampaignCrm::NotFound, error_message when 429 raise ActiveCampaignCrm::TooManyRequests, error_message when 500 raise ActiveCampaignCrm::InternalServerError, error_message when 502 raise ActiveCampaignCrm::BadGateway, error_message when 503 raise ActiveCampaignCrm::ServiceUnavailable, error_message when 504 raise ActiveCampaignCrm::GatewayTimeout, error_message else raise StandardError, error_message end end
post(url, body)
click to toggle source
# File lib/active_campaign_crm/connection.rb, line 22 def post(url, body) response = @connection.post do |req| req.url url req.headers['Api-Token'] = ActiveCampaignCrm.configuration.api_key req.body = body end handle_response(response) end
put(url, body)
click to toggle source
# File lib/active_campaign_crm/connection.rb, line 31 def put(url, body) response = @connection.put do |req| req.url url req.headers['Api-Token'] = ActiveCampaignCrm.configuration.api_key req.body = body end handle_response(response) end