class Workarea::FacebookConversionTrackingGateway

Public Class Methods

new(payload) click to toggle source
# File lib/workarea/facebook_conversion_tracking/gateway.rb, line 7
def initialize(payload)
  @payload = payload
end

Public Instance Methods

send() click to toggle source
# File lib/workarea/facebook_conversion_tracking/gateway.rb, line 11
def send
  begin
    response = conn.post do |req|
      req.params['data'] = @payload.to_json
    end

    handle_response(response)
  rescue => e
    Raven.capture_message("Facebook Conversion Tracking POST Error: #{e}", level: 'error')
  end
end

Private Instance Methods

access_token() click to toggle source
# File lib/workarea/facebook_conversion_tracking/gateway.rb, line 60
def access_token
  Workarea::FacebookConversionTracking.access_token
end
conn() click to toggle source
# File lib/workarea/facebook_conversion_tracking/gateway.rb, line 35
def conn
  @conn ||=
    Faraday.new(
      url: URI.parse(url),
      params: conn_params,
      headers: { 'Content-Type' => 'application/json' }
    )
end
conn_params() click to toggle source

We only want to use the test code when testing on dev.

# File lib/workarea/facebook_conversion_tracking/gateway.rb, line 45
def conn_params
  return unless Workarea::FacebookConversionTracking.configured?

  test_code = Rails.env.development? ? { test_event_code: test_code } : {}
  { access_token: access_token }.merge(test_code)
end
handle_response(response) click to toggle source
# File lib/workarea/facebook_conversion_tracking/gateway.rb, line 25
def handle_response(response)
  parsed_resp = JSON.parse(response.body)

  if response.status != 200
    Raven.capture_message("Facebook Conversion Tracking Error: #{parsed_resp}", level: 'error')
  else
    parsed_resp
  end
end
pixel_id() click to toggle source
# File lib/workarea/facebook_conversion_tracking/gateway.rb, line 56
def pixel_id
  Workarea::FacebookConversionTracking.pixel_id
end
test_code() click to toggle source
# File lib/workarea/facebook_conversion_tracking/gateway.rb, line 64
def test_code
  Workarea::FacebookConversionTracking.test_code
end
url() click to toggle source
# File lib/workarea/facebook_conversion_tracking/gateway.rb, line 52
def url
  "https://graph.facebook.com/v11.0/#{pixel_id}/events"
end