access 2.0.11 → 2.0.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/lib/access.rb +1 -0
- data/lib/access/api.rb +15 -1
- data/lib/access/redemption.rb +26 -0
- data/lib/access/response.rb +8 -9
- data/lib/access/version.rb +1 -1
- data/test/access/filter_test.rb +2 -0
- data/test/access/offer_test.rb +20 -2
- data/test/access/redeem_test.rb +1 -1
- data/test/access/redemption_test.rb +43 -0
- data/test/access/report_test.rb +77 -30
- data/test/test_helper.rb +5 -3
- data/test/vcr/cassettes/all_usage.yml +92 -0
- data/test/vcr/cassettes/autocomplete_search.yml +83 -0
- data/test/{fixtures → vcr/cassettes}/autocomplete_search_categories.yml +10 -10
- data/test/{fixtures → vcr/cassettes}/autocomplete_search_locations.yml +5 -5
- data/test/{fixtures → vcr/cassettes}/autocomplete_search_offers.yml +10 -10
- data/test/{fixtures → vcr/cassettes}/autocomplete_search_stores.yml +12 -12
- data/test/{fixtures → vcr/cassettes}/category_find.yml +7 -7
- data/test/{fixtures → vcr/cassettes}/category_search.yml +12 -12
- data/test/{fixtures → vcr/cassettes}/category_search_fail_member_key.yml +5 -5
- data/test/{fixtures → vcr/cassettes}/filter_find.yml +5 -5
- data/test/{fixtures → vcr/cassettes}/filter_search.yml +8 -8
- data/test/vcr/cassettes/find_redemption_by_member_key.yml +131 -0
- data/test/{fixtures → vcr/cassettes}/location_find.yml +8 -8
- data/test/{fixtures → vcr/cassettes}/location_search.yml +9 -9
- data/test/{fixtures → vcr/cassettes}/location_search_fail_member_key.yml +5 -5
- data/test/vcr/cassettes/member_location_frequent.yml +70 -0
- data/test/vcr/cassettes/member_location_recent.yml +70 -0
- data/test/vcr/cassettes/member_query_frequent.yml +73 -0
- data/test/vcr/cassettes/member_query_recent.yml +73 -0
- data/test/vcr/cassettes/national_stores.yml +1966 -0
- data/test/{fixtures → vcr/cassettes}/oauth_application_find.yml +5 -5
- data/test/{fixtures → vcr/cassettes}/oauth_application_search.yml +8 -8
- data/test/{fixtures → vcr/cassettes}/oauth_application_token_find.yml +5 -5
- data/test/{fixtures → vcr/cassettes}/oauth_application_token_search.yml +5 -5
- data/test/{fixtures → vcr/cassettes}/offer_find.yml +8 -8
- data/test/{fixtures → vcr/cassettes}/offer_search.yml +9 -9
- data/test/{fixtures → vcr/cassettes}/offer_search_fail_member_key.yml +5 -5
- data/test/vcr/cassettes/offer_with_aggregations.yml +935 -0
- data/test/vcr/cassettes/redeem_offer_no_redeem_type.yml +38 -0
- data/test/vcr/cassettes/redeem_offer_with_redeem_type.yml +38 -0
- data/test/vcr/cassettes/search_redemption_by_member_key.yml +762 -0
- data/test/vcr/cassettes/search_redemption_by_member_key_without_redemptions.yml +62 -0
- data/test/{fixtures → vcr/cassettes}/store_find.yml +5 -5
- data/test/{fixtures → vcr/cassettes}/store_search.yml +8 -8
- data/test/{fixtures → vcr/cassettes}/store_search_fail_member_key.yml +7 -7
- data/test/{fixtures → vcr/cassettes}/subcategory_find.yml +7 -7
- data/test/vcr/cassettes/token_find.yml +93 -0
- data/test/vcr/cassettes/token_get_first_token.yml +107 -0
- data/test/vcr/cassettes/token_search.yml +107 -0
- data/test/vcr/cassettes/usage.yml +92 -0
- data/test/vcr/cassettes/usage_other.yml +92 -0
- data/test/{fixtures → vcr/cassettes}/verify_filter.yml +17 -24
- data/test/{fixtures → vcr/cassettes}/verify_token.yml +6 -6
- metadata +91 -64
- data/test/fixtures/autocomplete_search.yml +0 -82
- data/test/fixtures/national_stores.yml +0 -1992
- data/test/fixtures/redeem_offer_no_redeem_type.yml +0 -73
- data/test/fixtures/token_find.yml +0 -92
- data/test/fixtures/token_get_first_token.yml +0 -106
- data/test/fixtures/token_search.yml +0 -106
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0ec93230386c5fab3046bd406a7e15d32dfc8ba5
|
4
|
+
data.tar.gz: 5511ac00dcc0e85e9f160ef4ec7dd513a53f3f02
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea5df8c2f50a5e9094c0347ceb9d7ccf27033dbf412af11f18576bf4b9f609b15f6a520951446f628007c63cca89d98891dd95166e8f9f0bec25e905bce4dc79
|
7
|
+
data.tar.gz: 517e30a0c574b6d5f39a5e6f013941cc995231eb340e6a07691d32bc333a68cc38efc6abd6e76dd53a8ddaaf5a6e32d1011ec3e769eff2fcf35b4628d71a8df7
|
data/Rakefile
CHANGED
data/lib/access.rb
CHANGED
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
|
-
|
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
|
data/lib/access/response.rb
CHANGED
@@ -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
|
data/lib/access/version.rb
CHANGED
data/test/access/filter_test.rb
CHANGED
data/test/access/offer_test.rb
CHANGED
@@ -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
|
data/test/access/redeem_test.rb
CHANGED
@@ -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
|
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
|
data/test/access/report_test.rb
CHANGED
@@ -2,35 +2,82 @@ require './test/test_helper'
|
|
2
2
|
|
3
3
|
class ReportTest < Minitest::Test
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
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
|
20
|
-
|
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
|