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