access 2.0.39 → 2.0.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/access.rb +1 -0
- data/lib/access/api.rb +13 -1
- data/lib/access/device.rb +24 -0
- data/lib/access/response.rb +7 -1
- data/lib/access/version.rb +1 -1
- data/test/access/device_test.rb +43 -0
- data/test/vcr/cassettes/member_device_search_failure.yml +49 -0
- data/test/vcr/cassettes/member_device_search_success.yml +48 -0
- data/test/vcr/cassettes/member_update_success.yml +45 -0
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88cc5dcf1725308ce52fe245e16c0b9ab93fc227
|
4
|
+
data.tar.gz: 7f7e9da142d44249756f2751f89847de7be7fff8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d84b7fb938f4a74fc3be0b436c3c6eee9ec76b8b3e8aa7e7051c3d5b1f22f3112ae971a4427c255cb3f72ab8d910766faa81d02772f8c03f18c0723dfd19722c
|
7
|
+
data.tar.gz: 5e858416bbad359520412793c6190d3678e462a70ec0310125de37d87e30f613ede949440ae9dc41f37018afc17285712be59ace22d38e143c317ddbad2ad9f1
|
data/Gemfile.lock
CHANGED
data/lib/access.rb
CHANGED
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
|
data/lib/access/response.rb
CHANGED
@@ -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)
|
data/lib/access/version.rb
CHANGED
@@ -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.
|
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-
|
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
|