balihoo_lpc_client 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 591af8860b95e6f9fba8075f1a24049457aa1e74
4
- data.tar.gz: 6b933abb027d4439683b06fc7239844bcf3fc265
3
+ metadata.gz: 7735f2922666882e13d21b9f0be18cc812e9052a
4
+ data.tar.gz: 7ad9cab953a15e2226d290677146e2cc9c2af713
5
5
  SHA512:
6
- metadata.gz: f934bee38ddb572e0dc06d012a56d0313bfbc0f9b52dd0c8f32dbd9ab01bdd0852173cf80fd28451cb94a4e35bf57bb358f14f69f0ad71da25b2c1a738f986c4
7
- data.tar.gz: 722fccbfed104e79bcf88459dde8f0d6f56bba88dd993362d007217bcc31385c94556a49eab522cfeb672b38dc791b1919547107b0cc467db3af28c0ed6aea31
6
+ metadata.gz: 1fb3bc582a128a0f971c37a566e361c2a4d3fd15bc5a741db6b314dbf3d9aa264f1e61ef59a3d94d9916727a8ab7b7c7665132f7b738064a949e8b79cdec89c6
7
+ data.tar.gz: f95e9996b24db9148131d3ff0464656584c0937037bbd209070c161c116eb8e6a420edd79b1441d347c09333020420b4d979008f2f4993b13f1ede4b4d97ba85
@@ -15,7 +15,10 @@ require 'balihoo_lpc_client/request/website_metrics'
15
15
  require 'balihoo_lpc_client/response/authentication'
16
16
  require 'balihoo_lpc_client/response/tactic'
17
17
  require 'balihoo_lpc_client/response/campaign'
18
- require 'balihoo_lpc_client/response/metric'
18
+ require 'balihoo_lpc_client/response/metric_base'
19
+ require 'balihoo_lpc_client/response/paid_search_metric'
20
+ require 'balihoo_lpc_client/response/email_metric'
21
+ require 'balihoo_lpc_client/response/display_metric'
19
22
  require 'balihoo_lpc_client/response/website_metric_visits'
20
23
  require 'balihoo_lpc_client/response/website_metric_leads'
21
24
  require 'balihoo_lpc_client/response/website_metric'
@@ -2,10 +2,16 @@ module BalihooLpcClient
2
2
  module Request
3
3
  class Campaigns < ApiBase
4
4
  def fetch
5
- response = self.class.get('/campaigns', opts).parsed_response
5
+ response = get_response
6
6
  handle_errors_with(klass: ApiResponseError, response: response)
7
7
  handle_response(response: response, klass: Response::Campaign)
8
8
  end
9
+
10
+ private
11
+
12
+ def get_response
13
+ self.class.get('/campaigns', opts).parsed_response
14
+ end
9
15
  end
10
16
  end
11
17
  end
@@ -1,10 +1,10 @@
1
1
  module BalihooLpcClient
2
2
  module Request
3
- class CampaignsWithTactics < ApiBase
4
- def fetch
5
- response = self.class.get('/campaignswithtactics', opts).parsed_response
6
- handle_errors_with(klass: ApiResponseError, response: response)
7
- handle_response(response: response, klass: Response::Campaign)
3
+ class CampaignsWithTactics < Campaigns
4
+ private
5
+
6
+ def get_response
7
+ self.class.get('/campaignswithtactics', opts).parsed_response
8
8
  end
9
9
  end
10
10
  end
@@ -11,7 +11,20 @@ module BalihooLpcClient
11
11
  def fetch
12
12
  response = self.class.get("/tactic/#{tactic_id}/metrics", opts).parsed_response
13
13
  handle_errors_with(klass: ApiResponseError, response: response)
14
- handle_response(response: response, klass: Response::Metric, mappable: false)
14
+ handle_response(response: response, klass: klass_for(response: response), mappable: false)
15
+ end
16
+
17
+ private
18
+
19
+ def klass_for(response:)
20
+ case (multiple_locations? ? response.values.first['channel'] : response['channel'])
21
+ when /Email/
22
+ Response::EmailMetric
23
+ when /Paid Search/
24
+ Response::PaidSearchMetric
25
+ when /Display/
26
+ Response::DisplayMetric
27
+ end
15
28
  end
16
29
  end
17
30
  end
@@ -0,0 +1,11 @@
1
+ module BalihooLpcClient
2
+ module Response
3
+ class DisplayMetric < MetricBase
4
+ property :impressions, from: 'impressions'
5
+ property :spend, from: 'spend'
6
+ property :ctr, from: 'ctr'
7
+ property :avg_cpc, from: 'avgCpc'
8
+ property :avg_cpm, from: 'avgCpm'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ module BalihooLpcClient
2
+ module Response
3
+ class EmailMetric < MetricBase
4
+ property :sends, from: 'sends'
5
+ property :opens, from: 'opens'
6
+ property :clicks, from: 'clicks'
7
+ property :delivered, from: 'delivered'
8
+ property :bounced, from: 'bounced'
9
+ property :unsubscribed, from: 'unsubscribed'
10
+ property :marked_spam, from: 'markedSpam'
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+ module BalihooLpcClient
2
+ module Response
3
+ class MetricBase < Hashie::Dash
4
+ include Hashie::Extensions::Dash::PropertyTranslation
5
+
6
+ property :tactic_ids, from: 'tacticIds'
7
+ property :channel, from: 'channel'
8
+ end
9
+ end
10
+ end
@@ -1,10 +1,6 @@
1
1
  module BalihooLpcClient
2
2
  module Response
3
- class Metric < Hashie::Dash
4
- include Hashie::Extensions::Dash::PropertyTranslation
5
-
6
- property :tactic_ids, from: 'tacticIds'
7
- property :channel, from: 'channel'
3
+ class PaidSearchMetric < MetricBase
8
4
  property :clicks, from: 'clicks'
9
5
  property :spend, from: 'spend'
10
6
  property :impressions, from: 'impressions'
@@ -1,3 +1,3 @@
1
1
  module BalihooLpcClient
2
- VERSION = "0.6.0"
2
+ VERSION = "0.7.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: balihoo_lpc_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - JD Guzman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2016-03-08 00:00:00.000000000 Z
12
+ date: 2016-03-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
@@ -171,7 +171,10 @@ files:
171
171
  - lib/balihoo_lpc_client/request/website_metrics.rb
172
172
  - lib/balihoo_lpc_client/response/authentication.rb
173
173
  - lib/balihoo_lpc_client/response/campaign.rb
174
- - lib/balihoo_lpc_client/response/metric.rb
174
+ - lib/balihoo_lpc_client/response/display_metric.rb
175
+ - lib/balihoo_lpc_client/response/email_metric.rb
176
+ - lib/balihoo_lpc_client/response/metric_base.rb
177
+ - lib/balihoo_lpc_client/response/paid_search_metric.rb
175
178
  - lib/balihoo_lpc_client/response/tactic.rb
176
179
  - lib/balihoo_lpc_client/response/website_metric.rb
177
180
  - lib/balihoo_lpc_client/response/website_metric_leads.rb