access 2.0.11 → 2.0.13

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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/lib/access.rb +1 -0
  4. data/lib/access/api.rb +15 -1
  5. data/lib/access/redemption.rb +26 -0
  6. data/lib/access/response.rb +8 -9
  7. data/lib/access/version.rb +1 -1
  8. data/test/access/filter_test.rb +2 -0
  9. data/test/access/offer_test.rb +20 -2
  10. data/test/access/redeem_test.rb +1 -1
  11. data/test/access/redemption_test.rb +43 -0
  12. data/test/access/report_test.rb +77 -30
  13. data/test/test_helper.rb +5 -3
  14. data/test/vcr/cassettes/all_usage.yml +92 -0
  15. data/test/vcr/cassettes/autocomplete_search.yml +83 -0
  16. data/test/{fixtures → vcr/cassettes}/autocomplete_search_categories.yml +10 -10
  17. data/test/{fixtures → vcr/cassettes}/autocomplete_search_locations.yml +5 -5
  18. data/test/{fixtures → vcr/cassettes}/autocomplete_search_offers.yml +10 -10
  19. data/test/{fixtures → vcr/cassettes}/autocomplete_search_stores.yml +12 -12
  20. data/test/{fixtures → vcr/cassettes}/category_find.yml +7 -7
  21. data/test/{fixtures → vcr/cassettes}/category_search.yml +12 -12
  22. data/test/{fixtures → vcr/cassettes}/category_search_fail_member_key.yml +5 -5
  23. data/test/{fixtures → vcr/cassettes}/filter_find.yml +5 -5
  24. data/test/{fixtures → vcr/cassettes}/filter_search.yml +8 -8
  25. data/test/vcr/cassettes/find_redemption_by_member_key.yml +131 -0
  26. data/test/{fixtures → vcr/cassettes}/location_find.yml +8 -8
  27. data/test/{fixtures → vcr/cassettes}/location_search.yml +9 -9
  28. data/test/{fixtures → vcr/cassettes}/location_search_fail_member_key.yml +5 -5
  29. data/test/vcr/cassettes/member_location_frequent.yml +70 -0
  30. data/test/vcr/cassettes/member_location_recent.yml +70 -0
  31. data/test/vcr/cassettes/member_query_frequent.yml +73 -0
  32. data/test/vcr/cassettes/member_query_recent.yml +73 -0
  33. data/test/vcr/cassettes/national_stores.yml +1966 -0
  34. data/test/{fixtures → vcr/cassettes}/oauth_application_find.yml +5 -5
  35. data/test/{fixtures → vcr/cassettes}/oauth_application_search.yml +8 -8
  36. data/test/{fixtures → vcr/cassettes}/oauth_application_token_find.yml +5 -5
  37. data/test/{fixtures → vcr/cassettes}/oauth_application_token_search.yml +5 -5
  38. data/test/{fixtures → vcr/cassettes}/offer_find.yml +8 -8
  39. data/test/{fixtures → vcr/cassettes}/offer_search.yml +9 -9
  40. data/test/{fixtures → vcr/cassettes}/offer_search_fail_member_key.yml +5 -5
  41. data/test/vcr/cassettes/offer_with_aggregations.yml +935 -0
  42. data/test/vcr/cassettes/redeem_offer_no_redeem_type.yml +38 -0
  43. data/test/vcr/cassettes/redeem_offer_with_redeem_type.yml +38 -0
  44. data/test/vcr/cassettes/search_redemption_by_member_key.yml +762 -0
  45. data/test/vcr/cassettes/search_redemption_by_member_key_without_redemptions.yml +62 -0
  46. data/test/{fixtures → vcr/cassettes}/store_find.yml +5 -5
  47. data/test/{fixtures → vcr/cassettes}/store_search.yml +8 -8
  48. data/test/{fixtures → vcr/cassettes}/store_search_fail_member_key.yml +7 -7
  49. data/test/{fixtures → vcr/cassettes}/subcategory_find.yml +7 -7
  50. data/test/vcr/cassettes/token_find.yml +93 -0
  51. data/test/vcr/cassettes/token_get_first_token.yml +107 -0
  52. data/test/vcr/cassettes/token_search.yml +107 -0
  53. data/test/vcr/cassettes/usage.yml +92 -0
  54. data/test/vcr/cassettes/usage_other.yml +92 -0
  55. data/test/{fixtures → vcr/cassettes}/verify_filter.yml +17 -24
  56. data/test/{fixtures → vcr/cassettes}/verify_token.yml +6 -6
  57. metadata +91 -64
  58. data/test/fixtures/autocomplete_search.yml +0 -82
  59. data/test/fixtures/national_stores.yml +0 -1992
  60. data/test/fixtures/redeem_offer_no_redeem_type.yml +0 -73
  61. data/test/fixtures/token_find.yml +0 -92
  62. data/test/fixtures/token_get_first_token.yml +0 -106
  63. data/test/fixtures/token_search.yml +0 -106
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 085579424366d9a40605ffb727ff40eb3b806487
4
- data.tar.gz: a48cd1109596db44bfe7808e020bc563123d8537
3
+ metadata.gz: 0ec93230386c5fab3046bd406a7e15d32dfc8ba5
4
+ data.tar.gz: 5511ac00dcc0e85e9f160ef4ec7dd513a53f3f02
5
5
  SHA512:
6
- metadata.gz: 9f2070fd1ebbee4b81ed1af617fbcb90e7635d711dde0365360f2f568bce059ca6b6787f9faa55a9edd3fa1d899ebde68a989a86e938b9fd5408aab02f87741c
7
- data.tar.gz: 9fb76dc5c2f11ae1eab40ffc8775838770df84f89db047065defcd51fed562c6848b3e15079b9e67495069175cb3bf42d94ee77a7b9277629057d884523bd99b
6
+ metadata.gz: ea5df8c2f50a5e9094c0347ceb9d7ccf27033dbf412af11f18576bf4b9f609b15f6a520951446f628007c63cca89d98891dd95166e8f9f0bec25e905bce4dc79
7
+ data.tar.gz: 517e30a0c574b6d5f39a5e6f013941cc995231eb340e6a07691d32bc333a68cc38efc6abd6e76dd53a8ddaaf5a6e32d1011ec3e769eff2fcf35b4628d71a8df7
data/Rakefile CHANGED
@@ -11,5 +11,5 @@ end
11
11
  task default: :test
12
12
 
13
13
  task :clear_vcr do
14
- `rm test/fixtures/*.yml`
14
+ `rm test/vcr/cassettes/*.yml`
15
15
  end
data/lib/access.rb CHANGED
@@ -20,6 +20,7 @@ require "access/member"
20
20
  require "access/oauth_application"
21
21
  require "access/offer"
22
22
  require "access/redeem"
23
+ require "access/redemption"
23
24
  require "access/report"
24
25
  require "access/request"
25
26
  require "access/response"
data/lib/access/api.rb CHANGED
@@ -129,7 +129,7 @@ module Access
129
129
  # Member
130
130
  def member_registration(options = {})
131
131
  request.post("/register", "mms", options) do |response|
132
- MemberRegistrationResponse.new(response)
132
+ MemberResponse.new(response)
133
133
  end
134
134
  end
135
135
 
@@ -139,6 +139,20 @@ module Access
139
139
  end
140
140
  end
141
141
 
142
+ # Offer Redemptions
143
+
144
+ def search_offer_redemptions_by_member(member_key, options = {})
145
+ request.get("/members/#{member_key}/offer-redemptions", "report", options) do |response|
146
+ RedemptionResponse.new(response)
147
+ end
148
+ end
149
+
150
+ def find_offer_redemptions_by_member(member_key, usage_redeem_key, options = {})
151
+ request.get("/members/#{member_key}/offer-redemptions/#{usage_redeem_key}", "report", options) do |response|
152
+ RedemptionResponse.new(response)
153
+ end
154
+ end
155
+
142
156
  # Internal Admin only Call Below
143
157
 
144
158
  # Filters
@@ -0,0 +1,26 @@
1
+ module Access
2
+ class Redemption
3
+
4
+ def self.search_by_member(member_key, options = {})
5
+ Access::Api.new.search_offer_redemptions_by_member member_key, options
6
+ end
7
+
8
+ def self.find_by_member(member_key, usage_redeem_key, options = {})
9
+ Access::Api.new.find_offer_redemptions_by_member member_key, usage_redeem_key, options
10
+ end
11
+
12
+ def self.process_batch(chunk)
13
+ chunk.map { |redemption| new(redemption) }
14
+ end
15
+
16
+ def initialize(values)
17
+ self.class.class_eval {attr_reader *values.keys }
18
+ values.each do |attribute_name, attribute_value|
19
+ self.instance_variable_set("@#{attribute_name}", attribute_value)
20
+ end
21
+ @offer = Access::Offer.new(@offer)
22
+ @member = Access::Member.new(@member)
23
+ end
24
+
25
+ end
26
+ end
@@ -1,7 +1,7 @@
1
1
  module Access
2
2
  class Response
3
3
 
4
- attr_accessor :info, :offers, :stores, :locations, :categories, :suggestions, :oauth_applications, :access_tokens, :oauth_tokens, :oauth_token, :verify, :reports, :members, :filters, :links, :dev_node, :message, :status, :success, :error, :response_status, :content_type, :redemption_method, :details, :oauth_access_token, :api_calls_over_time, :member_usage, :offer_count_in_categories, :offer_count_by_redemption_method, :offer_count_by_facet, :custom_aggregation, :internal_details, :users, :response
4
+ attr_accessor :info, :offers, :stores, :locations, :categories, :suggestions, :oauth_applications, :access_tokens, :oauth_tokens, :oauth_token, :verify, :reports, :members, :filters, :links, :dev_node, :message, :status, :success, :error, :response_status, :content_type, :redemption_method, :details, :oauth_access_token, :api_calls_over_time, :member_usage, :offer_count_in_categories, :offer_count_by_redemption_method, :offer_count_by_facet, :custom_aggregation, :internal_details, :users, :response, :offer_redemptions
5
5
 
6
6
  def initialize(response)
7
7
  @response = response # Setting this temporarily so i can have a working member reg call, since it doesn't follow the resource [] best practices
@@ -111,17 +111,11 @@ module Access
111
111
  def process_data
112
112
  @api_calls_over_time = Access::Report.process_batch(@api_calls_over_time) if @api_calls_over_time
113
113
  @member_query_terms = Access::Report.process_batch(@member_query_terms) if @member_query_terms
114
+ @member_usage = Access::Report.process_batch(@member_usage) if @member_usage
114
115
  @member_postal_codes = Access::Report.process_batch(@member_postal_codes) if @member_postal_codes
115
116
  end
116
117
  end
117
118
 
118
- class MemberRegistrationResponse < Response
119
- def process_data
120
- @users = Access::Member.process_batch([@response])
121
- end
122
- end
123
-
124
-
125
119
  class MemberResponse < Response
126
120
  def process_data
127
121
  @users = Access::Member.process_batch(@users)
@@ -158,6 +152,11 @@ module Access
158
152
  end
159
153
  end
160
154
 
161
-
155
+ class RedemptionResponse < Response
156
+ def process_data
157
+ (@offer_redemptions = []; create_error) if @message
158
+ @offer_redemptions = Access::Redemption.process_batch(@offer_redemptions)
159
+ end
160
+ end
162
161
 
163
162
  end
@@ -1,4 +1,4 @@
1
1
  module Access
2
- VERSION = "2.0.11"
2
+ VERSION = "2.0.13"
3
3
  end
4
4
 
@@ -34,6 +34,8 @@ class FilterTest < Minitest::Test
34
34
  assert_kind_of Access::Filter, first_filter
35
35
  assert first_filter.json_filter
36
36
  assert first_filter.hash_filter
37
+ assert first_filter.filter_key
38
+ assert first_filter.name
37
39
  end
38
40
  end
39
41
 
@@ -44,9 +44,7 @@ class OfferTest < Minitest::Test
44
44
  offers_response = Access::Offer.search(query: 'pizza', member_key: 'API_RUBY_GEM_TEST', per_page: 1)
45
45
  first_offer = offers_response.offers.first
46
46
  assert offers_response.success
47
- # location
48
47
  assert_equal first_offer.offer_store.physical_location, first_offer.location
49
- # store
50
48
  assert_equal first_offer.offer_store, first_offer.store
51
49
  end
52
50
  end
@@ -69,4 +67,24 @@ class OfferTest < Minitest::Test
69
67
  assert_raises(Access::Error::NoAccessToken) { Access::Offer.search(query: 'pizza', member_key: 'API_RUBY_GEM_TEST') }
70
68
  Access.config.access_token = ENV['ACCESS_TOKEN'] = orginal_token
71
69
  end
70
+
71
+ def test_offers_with_aggregation
72
+ VCR.use_cassette('offer with aggregations') do
73
+ offers_response = Access::Offer.search(query: 'pizza', member_key: 'API_RUBY_GEM_TEST', aggregations: 'all_categories,stores,locations,redemption_methods')
74
+ assert offers_response.success
75
+ assert_kind_of Access::OfferResponse, offers_response
76
+ assert_kind_of Array, offers_response.offer_count_in_categories
77
+ assert_kind_of Access::Aggregations, offers_response.offer_count_in_categories.first
78
+ assert offers_response.offer_count_in_categories.first.category_name
79
+ assert_kind_of Array, offers_response.offer_count_in_categories.first.subcategories
80
+ assert_kind_of Access::Category, offers_response.offer_count_in_categories.first.subcategories.first
81
+ assert_kind_of Array, offers_response.offer_count_by_redemption_method
82
+ assert_kind_of Access::Aggregations, offers_response.offer_count_by_redemption_method.first
83
+ assert offers_response.offer_count_by_redemption_method.first.offer_count
84
+ assert offers_response.offer_count_by_redemption_method.first.redemption_method
85
+ assert offers_response.info.total_locations
86
+ assert offers_response.info.total_stores
87
+ end
88
+ end
89
+
72
90
  end
@@ -24,7 +24,7 @@ class RedeemTest < Minitest::Test
24
24
 
25
25
  def test_redeem_offer_with_redeem_type
26
26
  get_first_offer
27
- VCR.use_cassette('redeem offer no redeem type') do
27
+ VCR.use_cassette('redeem offer with redeem type') do
28
28
  redeem_response = Access::Redeem.redeem_offer(@first_offer.offer_key, @first_offer.redemption_methods.first, member_key: 'API_RUBY_GEM_TEST')
29
29
  assert redeem_response.success
30
30
  assert_kind_of Access::RedeemResponse, redeem_response
@@ -0,0 +1,43 @@
1
+ require './test/test_helper'
2
+
3
+ class RedemptionTest < Minitest::Test
4
+
5
+ def get_first_redemption
6
+ VCR.use_cassette('search redemption by member key') do
7
+ @first_redemption = Access::Redemption.search_by_member('API_RUBY_GEM_TEST').offer_redemptions.first
8
+ end
9
+ end
10
+
11
+ def test_search_offer_redemptions_by_member
12
+ VCR.use_cassette('search redemption by member key') do
13
+ redemption_response = Access::Redemption.search_by_member('API_RUBY_GEM_TEST')
14
+ assert redemption_response.success
15
+ assert_kind_of Access::RedemptionResponse, redemption_response
16
+ assert_kind_of Access::Offer, redemption_response.offer_redemptions.first.offer
17
+ assert_kind_of Access::Member, redemption_response.offer_redemptions.first.member
18
+ assert_kind_of Access::Link, redemption_response.links
19
+ end
20
+ end
21
+
22
+ def test_find_offer_redemptions_by_member
23
+ get_first_redemption
24
+ VCR.use_cassette('find redemption by member key') do
25
+ redemption_response = Access::Redemption.find_by_member('API_RUBY_GEM_TEST', @first_redemption.usage_redeem_key)
26
+ assert redemption_response.success
27
+ assert_kind_of Access::RedemptionResponse, redemption_response
28
+ assert_kind_of Access::Offer, redemption_response.offer_redemptions.first.offer
29
+ assert_kind_of Access::Member, redemption_response.offer_redemptions.first.member
30
+ end
31
+ end
32
+
33
+ def test_search_offer_redemptions_by_member_with_no_redemptions
34
+ VCR.use_cassette('search redemption by member key without redemptions') do
35
+ redemption_response = Access::Redemption.search_by_member('API_RUBY_GEM_TEST_NOREDEMPTIONS')
36
+ refute redemption_response.success
37
+ assert_kind_of Access::RedemptionResponse, redemption_response
38
+ assert_kind_of Access::Error, redemption_response.error
39
+ assert_equal 200, redemption_response.error.status_code
40
+ assert_equal "No redemptions found.", redemption_response.error.message
41
+ end
42
+ end
43
+ end
@@ -2,35 +2,82 @@ require './test/test_helper'
2
2
 
3
3
  class ReportTest < Minitest::Test
4
4
 
5
- # def get_first_report
6
- # VCR.use_cassette('report search') do
7
- # @first_report = Access::Report.search(member_key: 'API_RUBY_GEM_TEST', per_page: 1).reports.first
8
- # end
9
- # end
10
-
11
- # def test_reports_search
12
- # VCR.use_cassette('report search') do
13
- # reports_response = Access::Report.search(member_key: 'API_RUBY_GEM_TEST', per_page: 1)
14
- # assert reports_response.success
15
- # first_report = reports_response.reports.first
16
- # assert_kind_of Access::ReportResponse, reports_response
17
- # assert_kind_of Access::Link, reports_response.links
18
- # assert_kind_of Access::Info, reports_response.info
19
- # assert_kind_of Array, reports_response.reports
20
- # assert_kind_of Access::Report, first_report
21
- # assert_kind_of Access::Link, first_report.links
22
- # end
23
- # end
24
-
25
- # def test_reports_find
26
- # get_first_report
27
- # VCR.use_cassette('report find') do
28
- # reports_response = Access::Report.find(@first_report.report_key, member_key: 'API_RUBY_GEM_TEST')
29
- # assert reports_response.success
30
- # first_report = reports_response.reports.first
31
- # assert_kind_of Access::ReportResponse, reports_response
32
- # assert_kind_of Access::Report, first_report
33
- # end
34
- # end
5
+ def test_all_usage
6
+ VCR.use_cassette('all usage') do
7
+ reports_response = Access::Report.all_usage
8
+ assert reports_response.success
9
+ assert_kind_of Access::Info, reports_response.info
10
+ assert_kind_of Array, reports_response.api_calls_over_time
11
+ assert_kind_of Access::Report, reports_response.api_calls_over_time.first
12
+ end
13
+ end
14
+
15
+ def test_usage
16
+ VCR.use_cassette('usage') do
17
+ reports_response = Access::Report.usage
18
+ assert reports_response.success
19
+ assert_kind_of Access::Info, reports_response.info
20
+ assert_kind_of Array, reports_response.api_calls_over_time
21
+ assert_kind_of Access::Report, reports_response.api_calls_over_time.first
22
+ end
23
+ end
24
+
25
+ def test_usage_other
26
+ VCR.use_cassette('usage other') do
27
+ reports_response = Access::Report.usage_other(ENV['ACCESS_TOKEN'])
28
+ assert reports_response.success
29
+ assert_kind_of Access::Info, reports_response.info
30
+ assert_kind_of Array, reports_response.api_calls_over_time
31
+ assert_kind_of Access::Report, reports_response.api_calls_over_time.first
32
+ end
33
+ end
34
+
35
+ def test_member_query_frequent
36
+ VCR.use_cassette('member query frequent') do
37
+ reports_response = Access::Report.member_query_frequent('API_RUBY_GEM_TEST')
38
+ assert reports_response.success
39
+ assert_kind_of Access::Info, reports_response.info
40
+ assert_kind_of Array, reports_response.member_usage
41
+ if reports_response.member_usage.first
42
+ assert_kind_of Access::Report, reports_response.member_usage.first
43
+ end
44
+ end
45
+ end
46
+
47
+ def test_member_query_recent
48
+ VCR.use_cassette('member query recent') do
49
+ reports_response = Access::Report.member_query_recent('API_RUBY_GEM_TEST')
50
+ assert reports_response.success
51
+ assert_kind_of Access::Info, reports_response.info
52
+ assert_kind_of Array, reports_response.member_usage
53
+ if reports_response.member_usage.first
54
+ assert_kind_of Access::Report, reports_response.member_usage.first
55
+ end
56
+ end
57
+ end
58
+
59
+ def test_member_location_frequent
60
+ VCR.use_cassette('member location frequent') do
61
+ reports_response = Access::Report.member_location_frequent('API_RUBY_GEM_TEST')
62
+ assert reports_response.success
63
+ assert_kind_of Access::Info, reports_response.info
64
+ assert_kind_of Array, reports_response.member_usage
65
+ if reports_response.member_usage.first
66
+ assert_kind_of Access::Report, reports_response.member_usage.first
67
+ end
68
+ end
69
+ end
70
+
71
+ def test_member_location_recent
72
+ VCR.use_cassette('member location recent') do
73
+ reports_response = Access::Report.member_location_recent('API_RUBY_GEM_TEST')
74
+ assert reports_response.success
75
+ assert_kind_of Access::Info, reports_response.info
76
+ assert_kind_of Array, reports_response.member_usage
77
+ if reports_response.member_usage.first
78
+ assert_kind_of Access::Report, reports_response.member_usage.first
79
+ end
80
+ end
81
+ end
35
82
 
36
83
  end
data/test/test_helper.rb CHANGED
@@ -16,9 +16,11 @@ require 'vcr'
16
16
 
17
17
 
18
18
  VCR.configure do |c|
19
- c.default_cassette_options = { record: ENV["RECORD"] ? ENV["RECORD"].to_sym : :all }
20
- # , match_requests_on: [:body]
21
- c.cassette_library_dir = "test/fixtures"
19
+ c.default_cassette_options = { record: ENV["RECORD"] ? ENV["RECORD"].to_sym : :new_episodes, match_requests_on: [:body], erb: true }
20
+ c.cassette_library_dir = "test/vcr/cassettes"
22
21
  c.hook_into :webmock
23
22
  c.ignore_hosts 'codeclimate.com'
23
+ c.filter_sensitive_data('ACCESS_TOKEN') do
24
+ ENV['ACCESS_TOKEN']
25
+ end
24
26
  end
@@ -0,0 +1,92 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://report-demo.adcrws.com/v1/all_usage
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
+ Access-Control-Allow-Headers:
22
+ - Origin, X-Requested-With, Content-Type, Accept, Authorization, Access-Token
23
+ Access-Control-Allow-Methods:
24
+ - POST, GET, PUT, DELETE, OPTIONS
25
+ Access-Control-Max-Age:
26
+ - '1728000'
27
+ Access-Control-Request-Method:
28
+ - GET
29
+ Cache-Control:
30
+ - max-age=0, private, must-revalidate
31
+ Content-Type:
32
+ - application/json
33
+ Date:
34
+ - Tue, 06 Oct 2015 22:05:44 GMT
35
+ Etag:
36
+ - '"62515833526a161596f1c884cd337758"'
37
+ Server:
38
+ - nginx/1.6.2
39
+ X-Content-Type-Options:
40
+ - nosniff
41
+ X-Frame-Options:
42
+ - SAMEORIGIN
43
+ X-Request-Id:
44
+ - af9831ad-5cdf-44be-a399-d5393c1ed9a1
45
+ X-Runtime:
46
+ - '0.171561'
47
+ X-Xss-Protection:
48
+ - 1; mode=block
49
+ Transfer-Encoding:
50
+ - chunked
51
+ Connection:
52
+ - keep-alive
53
+ body:
54
+ encoding: UTF-8
55
+ string: |-
56
+ {
57
+ "info": {
58
+ "total_api_calls": 74598,
59
+ "time_period": "2015-10-01T00:00:00Z to now",
60
+ "interval": "1d",
61
+ "report_env": "demo"
62
+ },
63
+ "api_calls_over_time": [
64
+ {
65
+ "timestamp": "2015-10-01T00:00:00.000",
66
+ "api_call_count": 13201
67
+ },
68
+ {
69
+ "timestamp": "2015-10-02T00:00:00.000",
70
+ "api_call_count": 12406
71
+ },
72
+ {
73
+ "timestamp": "2015-10-03T00:00:00.000",
74
+ "api_call_count": 11847
75
+ },
76
+ {
77
+ "timestamp": "2015-10-04T00:00:00.000",
78
+ "api_call_count": 11895
79
+ },
80
+ {
81
+ "timestamp": "2015-10-05T00:00:00.000",
82
+ "api_call_count": 12869
83
+ },
84
+ {
85
+ "timestamp": "2015-10-06T00:00:00.000",
86
+ "api_call_count": 12380
87
+ }
88
+ ]
89
+ }
90
+ http_version:
91
+ recorded_at: Tue, 06 Oct 2015 22:05:44 GMT
92
+ recorded_with: VCR 2.9.3