class Tracksale::Campaign

Attributes

code[RW]
name[RW]
score[RW]

Public Class Methods

all() click to toggle source
# File lib/tracksale/campaign.rb, line 30
def self.all
  raw_all.map { |campaign| create_from_response(campaign) }
end
client() click to toggle source
# File lib/tracksale/campaign.rb, line 50
def self.client
  Tracksale.configuration.client.new
end
create_from_response(raw_reponse) click to toggle source
# File lib/tracksale/campaign.rb, line 34
def self.create_from_response(raw_reponse)
  new.tap do |campaign|
    campaign.name = raw_reponse['name']
    campaign.code = raw_reponse['code']
    campaign.score = {
      detractors: raw_reponse['detractors'],
      passives: raw_reponse['passives'],
      promoters: raw_reponse['promoters']
    }
  end
end
find_by_code(code) click to toggle source
# File lib/tracksale/campaign.rb, line 24
def self.find_by_code(code)
  campaign_found_by_code = client.get('campaign/' + code.to_s).first
  return nil if campaign_found_by_code.nil?
  create_from_response(campaign_found_by_code)
end
find_by_name(name) click to toggle source
# File lib/tracksale/campaign.rb, line 18
def self.find_by_name(name)
  campaign_found_by_name = raw_all.keep_if { |c| c['name'] == name }.first
  return nil if campaign_found_by_name.nil?
  create_from_response(campaign_found_by_name)
end
raw_all() click to toggle source
# File lib/tracksale/campaign.rb, line 46
def self.raw_all
  client.get('campaign')
end
schedule_dispatch(code, body) click to toggle source
# File lib/tracksale/campaign.rb, line 9
def self.schedule_dispatch(code, body)
  response = client.post('campaign/' + code.to_s + '/dispatch', body)

  return response if response.success?

  raise ArgumentError, response['error'] if response['error']
  raise response.response.error!
end

Public Instance Methods

schedule_dispatch(body) click to toggle source
# File lib/tracksale/campaign.rb, line 5
def schedule_dispatch(body)
  self.class.schedule_dispatch(code, body)
end