access 2.0.11 → 2.0.13

Sign up to get free protection for your applications and to get access to all the features.
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