access 2.0.39 → 2.0.40

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: 89f3c21af62fc9dc997eb7aac92983250bb65e8e
4
- data.tar.gz: ea773d892b4b73563dfee9d02f2f8de217e570ee
3
+ metadata.gz: 88cc5dcf1725308ce52fe245e16c0b9ab93fc227
4
+ data.tar.gz: 7f7e9da142d44249756f2751f89847de7be7fff8
5
5
  SHA512:
6
- metadata.gz: 23284409d29be1c54340db53febdbadd5ef77530162721998e030797f430f034095c805baa735ca2b5da2237a459cc12b2f22b02f811aa3aeca713c67a433264
7
- data.tar.gz: 56734dd4b3d955f204c320d16783ba95ff1cc4c95cc2bcaf0757a7eb343e88938d9b514bf3a334ac2f3c87efa469539022a0a05e7292540ccbe7df170c8b5d59
6
+ metadata.gz: d84b7fb938f4a74fc3be0b436c3c6eee9ec76b8b3e8aa7e7051c3d5b1f22f3112ae971a4427c255cb3f72ab8d910766faa81d02772f8c03f18c0723dfd19722c
7
+ data.tar.gz: 5e858416bbad359520412793c6190d3678e462a70ec0310125de37d87e30f613ede949440ae9dc41f37018afc17285712be59ace22d38e143c317ddbad2ad9f1
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- access (2.0.39)
4
+ access (2.0.40)
5
5
  hashie (~> 3.3.1)
6
6
  httparty (~> 0.13.3)
7
7
 
data/lib/access.rb CHANGED
@@ -10,6 +10,7 @@ require "access/campaign"
10
10
  require "access/category"
11
11
  require "access/channel"
12
12
  require "access/city_savings"
13
+ require "access/device"
13
14
  require "access/error"
14
15
  require "access/favorite"
15
16
  require "access/filter"
data/lib/access/api.rb CHANGED
@@ -158,7 +158,6 @@ module Access
158
158
  end
159
159
 
160
160
  # Member
161
-
162
161
  def member_show(member_key, options = {})
163
162
  request.get("/members/#{member_key}", 'mms', options) do |response|
164
163
  MemberResponse.new(response)
@@ -171,6 +170,19 @@ module Access
171
170
  end
172
171
  end
173
172
 
173
+ # Device
174
+ def search_devices(member_key, options = {})
175
+ request.get("/members/#{member_key}/devices", 'mms', options) do |response|
176
+ DeviceResponse.new(response)
177
+ end
178
+ end
179
+
180
+ def find_device(member_key, options = {})
181
+ request.get("/members/#{member_key}/devices/#{options.delete(:udid)}", 'mms', options) do |response|
182
+ DeviceResponse.new(response)
183
+ end
184
+ end
185
+
174
186
  # Program
175
187
  def find_program_provisioning_method(pcid)
176
188
  request.get("/programs/#{pcid}", "mms") do |response|
@@ -0,0 +1,24 @@
1
+ module Access
2
+ class Device
3
+
4
+ def self.process_batch(chunk)
5
+ chunk.map { |device| new(device) }
6
+ end
7
+
8
+ def initialize(values)
9
+ self.class.class_eval {attr_reader *values.keys }
10
+ values.each do |attribute_name, attribute_value|
11
+ self.instance_variable_set("@#{attribute_name}", attribute_value)
12
+ end
13
+ end
14
+
15
+ def self.search(member_key, options = {})
16
+ Access::Api.new.search_devices member_key, options
17
+ end
18
+
19
+ def self.find(member_key, options = {})
20
+ Access::Api.new.find_device member_key, options
21
+ end
22
+
23
+ end
24
+ end
@@ -4,7 +4,7 @@ module Access
4
4
  #basics
5
5
  attr_reader :info, :links, :message, :status, :success, :error, :response_status, :dev_node, :internal_details, :response
6
6
  #resources
7
- attr_reader :offers, :stores, :locations, :categories, :suggestions, :oauth_applications, :access_tokens, :oauth_tokens, :oauth_token, :verify, :reports, :members, :filters, :oauth_access_token, :users, :offer_redemptions, :favorites, :campaigns, :channels, :spots, :programs
7
+ attr_reader :offers, :stores, :locations, :categories, :suggestions, :oauth_applications, :access_tokens, :oauth_tokens, :oauth_token, :verify, :reports, :members, :filters, :oauth_access_token, :users, :offer_redemptions, :favorites, :campaigns, :channels, :spots, :programs, :devices
8
8
  #aggregations
9
9
  attr_reader :offer_count_in_categories, :offer_count_by_redemption_method, :offer_count_by_facet, :custom_aggregation
10
10
  #redemptions
@@ -149,6 +149,12 @@ module Access
149
149
  end
150
150
  end
151
151
 
152
+ class DeviceResponse < Response
153
+ def process_data
154
+ @devices = Access::Device.process_batch(@devices) if @devices
155
+ end
156
+ end
157
+
152
158
  class FilterResponse < Response
153
159
  def process_data
154
160
  @filters = Access::Filter.process_batch(@filters)
@@ -1,4 +1,4 @@
1
1
  module Access
2
- VERSION = "2.0.39"
2
+ VERSION = "2.0.40"
3
3
  end
4
4
 
@@ -0,0 +1,43 @@
1
+ require './test/test_helper'
2
+
3
+ class DeviceTest < Minitest::Test
4
+
5
+ def test_device_search_success
6
+ VCR.use_cassette('member device search success') do
7
+ request = Access::Device.search '226872', program_id: '2412', api_environment: 'stage'
8
+ assert request.success
9
+ assert_kind_of Access::DeviceResponse, request
10
+ assert_kind_of Hash, request.response
11
+ end
12
+ end
13
+
14
+ def test_device_search_failure
15
+ VCR.use_cassette('member device search failure') do
16
+ request = Access::Device.search '12345', program_id: '00112233', api_environment: 'stage'
17
+ assert_equal 404, request.status
18
+ assert_kind_of Access::DeviceResponse, request
19
+ assert_kind_of Hash, request.response
20
+ end
21
+ end
22
+
23
+ def test_device_find_success
24
+ skip
25
+ VCR.use_cassette('member device find success') do
26
+ request = Access::Device.search '226872', udid: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX', program_id: '2412', api_environment: 'stage'
27
+ assert request.success
28
+ assert_kind_of Access::DeviceResponse, request
29
+ assert_kind_of Hash, request.response
30
+ end
31
+ end
32
+
33
+ def test_device_find_failure
34
+ skip
35
+ VCR.use_cassette('member device find failure') do
36
+ request = Access::Device.search '226872', udid: 'YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY', program_id: '2412', api_environment: 'stage'
37
+ assert_equal 404, request.status
38
+ assert_kind_of Access::DeviceResponse, request
39
+ assert_kind_of Hash, request.response
40
+ end
41
+ end
42
+
43
+ end
@@ -0,0 +1,49 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://mms-stage.adcrws.com/v1/members/12345/devices?program_id=00112233
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Access-Token:
11
+ - ACCESS_TOKEN
12
+ Content-Type:
13
+ - application/json
14
+ Accept:
15
+ - application/json
16
+ response:
17
+ status:
18
+ code: 404
19
+ message: Not Found
20
+ headers:
21
+ Server:
22
+ - Apache-Coyote/1.1
23
+ X-Content-Type-Options:
24
+ - nosniff
25
+ X-Xss-Protection:
26
+ - 1; mode=block
27
+ Cache-Control:
28
+ - no-cache, no-store, max-age=0, must-revalidate
29
+ Pragma:
30
+ - no-cache
31
+ Expires:
32
+ - '0'
33
+ X-Frame-Options:
34
+ - DENY
35
+ X-Application-Context:
36
+ - application:main,stage:10120
37
+ Content-Type:
38
+ - application/json;charset=UTF-8
39
+ Transfer-Encoding:
40
+ - chunked
41
+ Date:
42
+ - Tue, 12 Jan 2016 18:10:53 GMT
43
+ body:
44
+ encoding: UTF-8
45
+ string: '{"message":"Member does not exist(provider_member_cid: 12345, program_id
46
+ 112233). ","status":404}'
47
+ http_version:
48
+ recorded_at: Tue, 12 Jan 2016 18:09:26 GMT
49
+ recorded_with: VCR 3.0.0
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://mms-stage.adcrws.com/v1/members/226872/devices?program_id=2412
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Access-Token:
11
+ - ACCESS_TOKEN
12
+ Content-Type:
13
+ - application/json
14
+ Accept:
15
+ - application/json
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - Apache-Coyote/1.1
23
+ X-Content-Type-Options:
24
+ - nosniff
25
+ X-Xss-Protection:
26
+ - 1; mode=block
27
+ Cache-Control:
28
+ - no-cache, no-store, max-age=0, must-revalidate
29
+ Pragma:
30
+ - no-cache
31
+ Expires:
32
+ - '0'
33
+ X-Frame-Options:
34
+ - DENY
35
+ X-Application-Context:
36
+ - application:main,stage:10120
37
+ Content-Type:
38
+ - application/json;charset=UTF-8
39
+ Transfer-Encoding:
40
+ - chunked
41
+ Date:
42
+ - Tue, 12 Jan 2016 18:09:38 GMT
43
+ body:
44
+ encoding: UTF-8
45
+ string: '{"info":{"total_results":0},"devices":[]}'
46
+ http_version:
47
+ recorded_at: Tue, 12 Jan 2016 18:08:11 GMT
48
+ recorded_with: VCR 3.0.0
@@ -135,4 +135,49 @@ http_interactions:
135
135
  string: '{"username":"cs@test.com","birth_date":"2016-01-08","gender":null,"home_address":null,"default_location":null,"mobile_phone_number":null,"created_dts":"2016-01-08T17:14:47.489+0000","modified_dts":"2016-01-08T17:14:47.489+0000","last_registered_dts":"2015-10-07T19:57:56.456+0000","active":true,"messaging":null,"first_name":"Cody","last_name":"Stringham","member_id":89738626,"program_id":2412,"member_key":"226872","program_key":"TYP123","cvt":"6fa6c66c4edc07b767f147a6e5fc614c20797ef0","lat_lon_address":null,"address":null}'
136
136
  http_version:
137
137
  recorded_at: Fri, 08 Jan 2016 17:13:22 GMT
138
+ - request:
139
+ method: put
140
+ uri: https://mms-stage.adcrws.com/v1/members/226872?program_id=2412
141
+ body:
142
+ encoding: UTF-8
143
+ string: '{"birth_date":"2016-01-12"}'
144
+ headers:
145
+ Access-Token:
146
+ - ACCESS_TOKEN
147
+ Content-Type:
148
+ - application/json
149
+ Accept:
150
+ - application/json
151
+ response:
152
+ status:
153
+ code: 200
154
+ message: OK
155
+ headers:
156
+ Server:
157
+ - Apache-Coyote/1.1
158
+ X-Content-Type-Options:
159
+ - nosniff
160
+ X-Xss-Protection:
161
+ - 1; mode=block
162
+ Cache-Control:
163
+ - no-cache, no-store, max-age=0, must-revalidate
164
+ Pragma:
165
+ - no-cache
166
+ Expires:
167
+ - '0'
168
+ X-Frame-Options:
169
+ - DENY
170
+ X-Application-Context:
171
+ - application:main,stage:10110
172
+ Content-Type:
173
+ - application/json;charset=UTF-8
174
+ Transfer-Encoding:
175
+ - chunked
176
+ Date:
177
+ - Tue, 12 Jan 2016 18:09:40 GMT
178
+ body:
179
+ encoding: UTF-8
180
+ string: '{"username":"cs@test.com","birth_date":"2016-01-12","gender":null,"home_address":null,"default_location":null,"mobile_phone_number":null,"created_dts":"2015-12-15T00:33:37.372+0000","modified_dts":"2015-12-15T00:33:55.658+0000","last_registered_dts":"2015-10-07T19:57:56.456+0000","active":true,"messaging":null,"first_name":"Tep","last_name":"No","member_id":89738626,"program_id":2412,"member_key":"226872","program_key":"TYP123","cvt":"6fa6c66c4edc07b767f147a6e5fc614c20797ef0","lat_lon_address":null,"address":null}'
181
+ http_version:
182
+ recorded_at: Tue, 12 Jan 2016 18:08:13 GMT
138
183
  recorded_with: VCR 3.0.0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: access
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.39
4
+ version: 2.0.40
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Eggett
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-01-08 00:00:00.000000000 Z
13
+ date: 2016-01-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler
@@ -226,6 +226,7 @@ files:
226
226
  - lib/access/channel.rb
227
227
  - lib/access/city_savings.rb
228
228
  - lib/access/config.rb
229
+ - lib/access/device.rb
229
230
  - lib/access/error.rb
230
231
  - lib/access/favorite.rb
231
232
  - lib/access/filter.rb
@@ -253,6 +254,7 @@ files:
253
254
  - test/access/category_test.rb
254
255
  - test/access/channel_test.rb
255
256
  - test/access/city_savings_test.rb
257
+ - test/access/device_test.rb
256
258
  - test/access/favorite_test.rb
257
259
  - test/access/filter_test.rb
258
260
  - test/access/location_test.rb
@@ -311,6 +313,8 @@ files:
311
313
  - test/vcr/cassettes/member_authenticate_cvt_success.yml
312
314
  - test/vcr/cassettes/member_authenticate_failure.yml
313
315
  - test/vcr/cassettes/member_authenticate_success.yml
316
+ - test/vcr/cassettes/member_device_search_failure.yml
317
+ - test/vcr/cassettes/member_device_search_success.yml
314
318
  - test/vcr/cassettes/member_location_frequent.yml
315
319
  - test/vcr/cassettes/member_location_recent.yml
316
320
  - test/vcr/cassettes/member_query_frequent.yml
@@ -382,6 +386,7 @@ test_files:
382
386
  - test/access/category_test.rb
383
387
  - test/access/channel_test.rb
384
388
  - test/access/city_savings_test.rb
389
+ - test/access/device_test.rb
385
390
  - test/access/favorite_test.rb
386
391
  - test/access/filter_test.rb
387
392
  - test/access/location_test.rb
@@ -440,6 +445,8 @@ test_files:
440
445
  - test/vcr/cassettes/member_authenticate_cvt_success.yml
441
446
  - test/vcr/cassettes/member_authenticate_failure.yml
442
447
  - test/vcr/cassettes/member_authenticate_success.yml
448
+ - test/vcr/cassettes/member_device_search_failure.yml
449
+ - test/vcr/cassettes/member_device_search_success.yml
443
450
  - test/vcr/cassettes/member_location_frequent.yml
444
451
  - test/vcr/cassettes/member_location_recent.yml
445
452
  - test/vcr/cassettes/member_query_frequent.yml