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 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