Class: Tracksale::Campaign
- Inherits:
-
Object
- Object
- Tracksale::Campaign
- Defined in:
- lib/tracksale/campaign.rb
Instance Attribute Summary collapse
-
#code ⇒ Object
Returns the value of attribute code.
-
#name ⇒ Object
Returns the value of attribute name.
-
#score ⇒ Object
Returns the value of attribute score.
Class Method Summary collapse
- .all ⇒ Object
- .client ⇒ Object
- .create_from_response(raw_reponse) ⇒ Object
- .find_by_code(code) ⇒ Object
- .find_by_name(name) ⇒ Object
- .raw_all ⇒ Object
- .schedule_dispatch(code, body) ⇒ Object
Instance Method Summary collapse
Instance Attribute Details
#code ⇒ Object
Returns the value of attribute code.
3 4 5 |
# File 'lib/tracksale/campaign.rb', line 3 def code @code end |
#name ⇒ Object
Returns the value of attribute name.
3 4 5 |
# File 'lib/tracksale/campaign.rb', line 3 def name @name end |
#score ⇒ Object
Returns the value of attribute score.
3 4 5 |
# File 'lib/tracksale/campaign.rb', line 3 def score @score end |
Class Method Details
.all ⇒ Object
30 31 32 |
# File 'lib/tracksale/campaign.rb', line 30 def self.all raw_all.map { |campaign| create_from_response(campaign) } end |
.client ⇒ Object
50 51 52 |
# File 'lib/tracksale/campaign.rb', line 50 def self.client Tracksale.configuration.client.new end |
.create_from_response(raw_reponse) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 |
# 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) ⇒ Object
24 25 26 27 28 |
# 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) ⇒ Object
18 19 20 21 22 |
# 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 ⇒ Object
46 47 48 |
# File 'lib/tracksale/campaign.rb', line 46 def self.raw_all client.get('campaign') end |
.schedule_dispatch(code, body) ⇒ Object
9 10 11 12 13 14 15 16 |
# 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 |
Instance Method Details
#schedule_dispatch(body) ⇒ Object
5 6 7 |
# File 'lib/tracksale/campaign.rb', line 5 def schedule_dispatch(body) self.class.schedule_dispatch(code, body) end |