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