soapy_cake 1.3.6 → 1.4.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: 830ff2900a4ace7abce4a1d8e4248838bdda3624
4
- data.tar.gz: 57bc6180452370286040dcdbfbe01df3a018bf94
3
+ metadata.gz: cd9650087f25d594328017d9adf7455f3d6b3763
4
+ data.tar.gz: 91a2b6a9eef7ee1b47d2389a7468e43de79b191f
5
5
  SHA512:
6
- metadata.gz: c1d08a4890790afb01f34c693b4c8c88af8a3b888610fb4043b37a10f3f209c44c59f6d30e947cc868dd09cd9a2f7fae25fae14fe83c0ecce59c663b1dc6c9a2
7
- data.tar.gz: 93b81c448ff6f2bfdeaf28632f0dacb555a3e9d9568563b71e267655a032503588e6fb04c12f1814b147b570b37faf4751b2ecd8ba88aca2ac16d09d181075f5
6
+ metadata.gz: d6eb4e5f4cba2ce09552f8f37671ee22fa4cb64522dadcae33156894a81fa3eea5a1b9aaf03cc241b09811b59ba03cc14ae4eb5d4b02df80c3626ed1364a3e97
7
+ data.tar.gz: 7e2c571cf58d813ca780dfd56272f41aca615e04b97f7e1d8e1a20bdc820b82a78003c13efb0379b0d04f3217f44d71961b1df074171df5afd838e28ad44d5c7
data/api_versions.yml CHANGED
@@ -20,7 +20,7 @@ admin:
20
20
  creative: 1
21
21
  creative_files: 1
22
22
  exchange_rates: 1
23
- geo_targets: 1
23
+ geo_targets: 2
24
24
  offer: 4
25
25
  offer_contract: 1
26
26
  offer_tiers: 1
@@ -21,11 +21,29 @@ module SoapyCake
21
21
  end
22
22
 
23
23
  def add_geo_targets(opts = {})
24
- require_params(opts, %i(offer_contract_id countries set_targeting_to_geo))
24
+ require_params(opts, %i(offer_contract_id allow_countries))
25
+
26
+ if opts[:allow_countries]
27
+ require_params(opts, %i(countries))
28
+ countries = Array(opts[:countries])
29
+ opts[:countries] = countries.join(',')
30
+ opts[:redirect_offer_contract_ids] = ([0] * countries.count).join(',')
31
+ else
32
+ unless opts[:redirects].is_a?(Hash) && opts[:redirects].keys.count > 0
33
+ fail Error, "Parameter 'redirects' must be a COUNTRY=>REDIRECT_OFFER_CONTRACT_ID hash!"
34
+ end
35
+
36
+ opts[:countries] = opts[:redirects].keys.join(',')
37
+ opts[:redirect_offer_contract_ids] = opts[:redirects].values.join(',')
38
+ opts.delete(:redirects)
39
+ end
25
40
 
26
- opts[:countries] = Array(opts[:countries]).join(',')
41
+ opts.merge!(
42
+ add_edit_option: 'add',
43
+ set_targeting_to_geo: true
44
+ )
27
45
 
28
- run Request.new(:admin, :addedit, :geo_targets, opts.merge(add_edit_option: 'add'))
46
+ run Request.new(:admin, :addedit, :geo_targets, opts)
29
47
  end
30
48
 
31
49
  def add_offer_contract(opts = {})
@@ -1,3 +1,3 @@
1
1
  module SoapyCake
2
- VERSION = '1.3.6'
2
+ VERSION = '1.4.0'
3
3
  end
@@ -2,20 +2,73 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: post
5
- uri: https://cake-partner-domain.com/api/1/addedit.asmx
5
+ uri: https://cake-partner-domain.com/api/2/addedit.asmx
6
6
  body:
7
7
  encoding: UTF-8
8
8
  string: |
9
9
  <?xml version="1.0"?>
10
- <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:cake="http://cakemarketing.com/api/1/">
10
+ <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:cake="http://cakemarketing.com/api/2/">
11
11
  <env:Header/>
12
12
  <env:Body>
13
13
  <cake:GeoTargets>
14
14
  <cake:api_key>cake-api-key</cake:api_key>
15
15
  <cake:offer_contract_id>1456</cake:offer_contract_id>
16
16
  <cake:countries>DE,FR</cake:countries>
17
+ <cake:allow_countries>true</cake:allow_countries>
18
+ <cake:redirect_offer_contract_ids>0,0</cake:redirect_offer_contract_ids>
19
+ <cake:add_edit_option>add</cake:add_edit_option>
17
20
  <cake:set_targeting_to_geo>true</cake:set_targeting_to_geo>
21
+ </cake:GeoTargets>
22
+ </env:Body>
23
+ </env:Envelope>
24
+ headers:
25
+ Content-Type:
26
+ - application/soap+xml;charset=UTF-8
27
+ response:
28
+ status:
29
+ code: 200
30
+ message: OK
31
+ headers:
32
+ Cache-Control:
33
+ - private, max-age=0
34
+ Content-Type:
35
+ - application/soap+xml; charset=utf-8
36
+ Server:
37
+ - Microsoft-IIS/8.0
38
+ X-Aspnet-Version:
39
+ - 4.0.30319
40
+ X-Powered-By:
41
+ - ASP.NET
42
+ Date:
43
+ - Tue, 17 Mar 2015 10:22:54 GMT
44
+ Content-Length:
45
+ - '446'
46
+ body:
47
+ encoding: UTF-8
48
+ string: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
49
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GeoTargetsResponse
50
+ xmlns="http://cakemarketing.com/api/2/"><GeoTargetsResult><success>true</success><message>Geotarget(s)
51
+ Added</message><row_count>2</row_count></GeoTargetsResult></GeoTargetsResponse></soap:Body></soap:Envelope>
52
+ http_version:
53
+ recorded_at: Tue, 17 Feb 2015 12:00:00 GMT
54
+ - request:
55
+ method: post
56
+ uri: https://cake-partner-domain.com/api/2/addedit.asmx
57
+ body:
58
+ encoding: UTF-8
59
+ string: |
60
+ <?xml version="1.0"?>
61
+ <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:cake="http://cakemarketing.com/api/2/">
62
+ <env:Header/>
63
+ <env:Body>
64
+ <cake:GeoTargets>
65
+ <cake:api_key>cake-api-key</cake:api_key>
66
+ <cake:offer_contract_id>1456</cake:offer_contract_id>
67
+ <cake:countries>AT,CH</cake:countries>
68
+ <cake:allow_countries>false</cake:allow_countries>
69
+ <cake:redirect_offer_contract_ids>1392,1392</cake:redirect_offer_contract_ids>
18
70
  <cake:add_edit_option>add</cake:add_edit_option>
71
+ <cake:set_targeting_to_geo>true</cake:set_targeting_to_geo>
19
72
  </cake:GeoTargets>
20
73
  </env:Body>
21
74
  </env:Envelope>
@@ -38,15 +91,15 @@ http_interactions:
38
91
  X-Powered-By:
39
92
  - ASP.NET
40
93
  Date:
41
- - Wed, 04 Mar 2015 07:44:47 GMT
94
+ - Tue, 17 Mar 2015 10:22:55 GMT
42
95
  Content-Length:
43
- - '443'
96
+ - '446'
44
97
  body:
45
98
  encoding: UTF-8
46
99
  string: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
47
100
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GeoTargetsResponse
48
- xmlns="http://cakemarketing.com/api/1/"><GeoTargetsResult><success>true</success><message>Countries
49
- Added</message><row_count>0</row_count></GeoTargetsResult></GeoTargetsResponse></soap:Body></soap:Envelope>
101
+ xmlns="http://cakemarketing.com/api/2/"><GeoTargetsResult><success>true</success><message>Geotarget(s)
102
+ Added</message><row_count>2</row_count></GeoTargetsResult></GeoTargetsResponse></soap:Body></soap:Envelope>
50
103
  http_version:
51
104
  recorded_at: Tue, 17 Feb 2015 12:00:00 GMT
52
105
  recorded_with: VCR 2.9.3
@@ -7,6 +7,7 @@ RSpec.describe 'ADDEDIT integration test' do
7
7
  let(:vertical_id) { 41 }
8
8
  let(:offer_id) { 8910 }
9
9
  let(:offer_contract_id) { 1456 }
10
+ let(:redirect_offer_contract_id) { 1392 }
10
11
  let(:tier_id) { 4 }
11
12
 
12
13
  describe 'offers' do
@@ -95,10 +96,33 @@ RSpec.describe 'ADDEDIT integration test' do
95
96
  result = subject.add_geo_targets(
96
97
  offer_contract_id: offer_contract_id,
97
98
  countries: %w(DE FR),
98
- set_targeting_to_geo: true,
99
+ allow_countries: true
99
100
  )
101
+ expect(result).to include(success: true, row_count: '2')
100
102
 
101
- expect(result).to include(success: true)
103
+ result = subject.add_geo_targets(
104
+ offer_contract_id: offer_contract_id,
105
+ countries: %w(AT CH),
106
+ redirects: {
107
+ 'AT' => redirect_offer_contract_id,
108
+ 'CH' => redirect_offer_contract_id,
109
+ },
110
+ allow_countries: false
111
+ )
112
+ expect(result).to include(success: true, row_count: '2')
113
+ end
114
+
115
+ it 'fails if it does not get a correct redirect hash' do
116
+ expect do
117
+ subject.add_geo_targets(
118
+ offer_contract_id: offer_contract_id,
119
+ redirects: {},
120
+ allow_countries: false
121
+ )
122
+ end.to raise_error(
123
+ SoapyCake::Error,
124
+ "Parameter 'redirects' must be a COUNTRY=>REDIRECT_OFFER_CONTRACT_ID hash!"
125
+ )
102
126
  end
103
127
  end
104
128
 
data/spec/spec_helper.rb CHANGED
@@ -35,8 +35,8 @@ RSpec.configure do |config|
35
35
  config.expose_dsl_globally = false
36
36
  end
37
37
 
38
- ENV['CAKE_API_KEY'] = 'piljvSwWlHlmGoqSEiSx7UuHxWWD2J' if ENV['CAKE_API_KEY'].blank?
39
- ENV['CAKE_DOMAIN'] = 'network-staging.ad2games.com' if ENV['CAKE_DOMAIN'].blank?
38
+ ENV['CAKE_API_KEY'] = 'cake-api-key' if ENV['CAKE_API_KEY'].blank?
39
+ ENV['CAKE_DOMAIN'] = 'cake-partner-domain.com' if ENV['CAKE_DOMAIN'].blank?
40
40
  ENV['CAKE_TIME_OFFSET'] = '1' if ENV['CAKE_TIME_OFFSET'].blank?
41
41
 
42
42
  VCR.configure do |c|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soapy_cake
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.6
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ad2games GmbH
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-06 00:00:00.000000000 Z
11
+ date: 2015-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -228,7 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
228
228
  version: '0'
229
229
  requirements: []
230
230
  rubyforge_project:
231
- rubygems_version: 2.4.6
231
+ rubygems_version: 2.4.5
232
232
  signing_key:
233
233
  specification_version: 4
234
234
  summary: Simple client for the CAKE API