clever-ruby 0.8.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/lib/clever-ruby.rb +5 -4
- data/lib/clever-ruby/api_operations/list.rb +16 -15
- data/lib/clever-ruby/api_operations/nested_list.rb +6 -6
- data/lib/clever-ruby/api_operations/page.rb +4 -3
- data/lib/clever-ruby/api_operations/pagelist.rb +3 -2
- data/lib/clever-ruby/api_resource.rb +7 -7
- data/lib/clever-ruby/clever_object.rb +15 -3
- data/lib/clever-ruby/district.rb +3 -1
- data/lib/clever-ruby/errors/api_connection_error.rb +1 -0
- data/lib/clever-ruby/errors/api_error.rb +1 -0
- data/lib/clever-ruby/errors/authentication_error.rb +1 -0
- data/lib/clever-ruby/nested_resource.rb +3 -2
- data/lib/clever-ruby/version.rb +2 -1
- data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_events.yml +132 -0
- data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_schools.yml +197 -0
- data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_sections.yml +3631 -0
- data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_students.yml +2344 -0
- data/test/data/vcr_cassettes/Clever_District_without_global_token/pages_methods/pages_a_district_s_teachers.yml +674 -0
- data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_events.yml +89 -0
- data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_schools.yml +154 -0
- data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_sections.yml +1156 -0
- data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_students.yml +1195 -0
- data/test/data/vcr_cassettes/Clever_District_without_global_token/retrieves_a_district_s_teachers.yml +314 -0
- data/test/integration/district_with_non_global_token_test.rb +81 -0
- data/test/test_helper.rb +5 -0
- metadata +29 -8
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
NzA5MDg3ODc0YzNkYmI5ZDZlN2NlYzU2ZGQyYjNmZjZiZjIyYmQ0Ng==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 72240221ff70715106fd5d8c9a1a729e22ac6151
|
4
|
+
data.tar.gz: aa22601ec563ecd02478f61772b788e1d1fd22fb
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
YjlkZTZhNjI5NjM1YmZjZDg2NzNlZWIyZGJjMzVmMjYwOWIyYTNkOTNiZGY1
|
11
|
-
NGQwNzA4MzhiNjk0ODc5YzUyNmExM2M1MGQyMWUwYzcyM2IyZWE=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
NTMwNTI0M2UxODcxNThkYWJkOWEwMmZmNWIxNTY4NjI5YTZiNzE4MGRhMzBi
|
14
|
-
ZjExYjQ1ZGY1MThjNmQyNTEzNDc5M2E2MWEzM2VmMjU3NzU1MzNiMzVmOGVi
|
15
|
-
NjZmYTY3Y2QzZTBkOGJkNjA2OTFmMzFhY2U0MDRlM2MxNTA1YTE=
|
6
|
+
metadata.gz: 748147377f319880ae59d5998bea552e4059cd64e23bf53467b970b533441f2fdb91c90a3f102a5866ea461b90ab98d8bbf5a58db9325ab6185c1d9256b2b4be
|
7
|
+
data.tar.gz: 4afb8665b6a1852a54a581b3370efce8f6b1a9176a761b438cc2e7a650147dbf638e22e1894d1de11ab0f888fcc58321a0322fc2d4a6c1d67f39ec9a3d0ce127
|
data/lib/clever-ruby.rb
CHANGED
@@ -149,11 +149,12 @@ module Clever
|
|
149
149
|
# @api private
|
150
150
|
# @return [nil]
|
151
151
|
# @raise [AuthenticationError] Error if no authentication present
|
152
|
-
def self.check_authorization
|
153
|
-
unless Clever.api_key || Clever.token
|
152
|
+
def self.check_authorization(headers)
|
153
|
+
unless Clever.api_key || Clever.token || headers.key?(:Authorization)
|
154
154
|
fail AuthenticationError, 'No API key provided. (HINT: set your API key using '\
|
155
155
|
'"Clever.configure { |config| config.api_key = <API-KEY> }" or your token using '\
|
156
|
-
'"Clever.configure { |config| config.token = <TOKEN> }"
|
156
|
+
'"Clever.configure { |config| config.token = <TOKEN> }" '\
|
157
|
+
'or pass the district token as a second argument to retrieve)'
|
157
158
|
end
|
158
159
|
end
|
159
160
|
|
@@ -166,7 +167,7 @@ module Clever
|
|
166
167
|
# @return [Hash] parsed JSON response
|
167
168
|
# @raise [APIError] Error if API fails to return valid JSON
|
168
169
|
def self.request(method, url, params = nil, headers = {})
|
169
|
-
check_authorization
|
170
|
+
check_authorization(headers)
|
170
171
|
opts = create_request_opts method, url, params, headers
|
171
172
|
response = execute_request opts
|
172
173
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
module Clever
|
2
|
+
# API Operations
|
2
3
|
module APIOperations
|
3
4
|
# A list of API resource instances
|
4
5
|
module List
|
@@ -13,9 +14,9 @@ module Clever
|
|
13
14
|
# @return [Array] array of all elements matching the request
|
14
15
|
# @example
|
15
16
|
# Clever::District.all
|
16
|
-
def all(filters = {})
|
17
|
+
def all(filters = {}, headers = {})
|
17
18
|
accum = []
|
18
|
-
Clever::APIOperations::PageList.new(url, filters).each do |page|
|
19
|
+
Clever::APIOperations::PageList.new(url, filters, headers).each do |page|
|
19
20
|
accum += page.all
|
20
21
|
end
|
21
22
|
accum
|
@@ -40,7 +41,7 @@ module Clever
|
|
40
41
|
# # Get districts with given ids
|
41
42
|
# ids = ['...', '...']
|
42
43
|
# districts = Clever::District.find ids
|
43
|
-
def find(id = nil, filters = {})
|
44
|
+
def find(id = nil, filters = {}, headers = {})
|
44
45
|
if id.is_a? Array
|
45
46
|
unless id.select { |e| !Clever::Util.valid_id? e }.empty?
|
46
47
|
fail ArgumentError, 'Array of IDs must only contain valid ObjectIDs'
|
@@ -50,7 +51,7 @@ module Clever
|
|
50
51
|
end
|
51
52
|
|
52
53
|
if id.nil? || id.is_a?(Array)
|
53
|
-
Clever::APIOperations::PageList.new(url, filters).to_results_list
|
54
|
+
Clever::APIOperations::PageList.new(url, filters, headers).to_results_list
|
54
55
|
elsif Clever::Util.valid_id? id
|
55
56
|
retrieve id
|
56
57
|
else
|
@@ -70,14 +71,14 @@ module Clever
|
|
70
71
|
# first_elems.each do |e|
|
71
72
|
# puts e.name
|
72
73
|
# end
|
73
|
-
def first(num = nil, filters = {})
|
74
|
+
def first(num = nil, filters = {}, headers = {})
|
74
75
|
if num.nil?
|
75
76
|
filters[:limit] = 1
|
76
|
-
response = Clever.request :get, url, filters
|
77
|
+
response = Clever.request :get, url, filters, headers
|
77
78
|
Util.convert_to_clever_object response[:data].last
|
78
79
|
else
|
79
80
|
filters[:limit] = num
|
80
|
-
Clever::APIOperations::PageList.new(url, filters).first
|
81
|
+
Clever::APIOperations::PageList.new(url, filters, headers).first
|
81
82
|
end
|
82
83
|
end
|
83
84
|
|
@@ -93,15 +94,15 @@ module Clever
|
|
93
94
|
# last_elems.each do |e|
|
94
95
|
# puts e.name
|
95
96
|
# end
|
96
|
-
def last(num = nil, filters = {})
|
97
|
+
def last(num = nil, filters = {}, headers = {})
|
97
98
|
filters[:ending_before] = 'last'
|
98
99
|
if num.nil?
|
99
100
|
filters[:limit] = 1
|
100
|
-
response = Clever.request :get, url, filters
|
101
|
+
response = Clever.request :get, url, filters, headers
|
101
102
|
Util.convert_to_clever_object response[:data].last
|
102
103
|
else
|
103
104
|
filters[:limit] = num
|
104
|
-
Clever::APIOperations::PageList.new(url, filters).to_results_list
|
105
|
+
Clever::APIOperations::PageList.new(url, filters, headers).to_results_list
|
105
106
|
end
|
106
107
|
end
|
107
108
|
|
@@ -117,15 +118,15 @@ module Clever
|
|
117
118
|
# last_elems.each do |e|
|
118
119
|
# puts e.name
|
119
120
|
# end
|
120
|
-
def last(num = nil, filters = {})
|
121
|
+
def last(num = nil, filters = {}, headers = {})
|
121
122
|
filters[:ending_before] = 'last'
|
122
123
|
if num.nil?
|
123
124
|
filters[:limit] = 1
|
124
|
-
response = Clever.request :get, url, filters
|
125
|
+
response = Clever.request :get, url, filters, headers
|
125
126
|
Util.convert_to_clever_object response[:data].last
|
126
127
|
else
|
127
128
|
filters[:limit] = num
|
128
|
-
Clever::APIOperations::PageList.new(url, filters).to_results_list
|
129
|
+
Clever::APIOperations::PageList.new(url, filters, headers).to_results_list
|
129
130
|
end
|
130
131
|
end
|
131
132
|
|
@@ -135,9 +136,9 @@ module Clever
|
|
135
136
|
# @return [Integer] Number of elements matching
|
136
137
|
# @example
|
137
138
|
# num_districts = Clever::District.count
|
138
|
-
def count(filters = {})
|
139
|
+
def count(filters = {}, headers = {})
|
139
140
|
filters[:count] = true
|
140
|
-
response = Clever.request :get, url, filters
|
141
|
+
response = Clever.request :get, url, filters, headers
|
141
142
|
response[:count]
|
142
143
|
end
|
143
144
|
end
|
@@ -25,7 +25,7 @@ module Clever
|
|
25
25
|
# end
|
26
26
|
def find(filters = {})
|
27
27
|
filters = @filters.merge filters
|
28
|
-
Clever::APIOperations::PageList.new(@uri, filters).to_results_list
|
28
|
+
Clever::APIOperations::PageList.new(@uri, filters, headers).to_results_list
|
29
29
|
end
|
30
30
|
|
31
31
|
# Request the number of elements in a nested list from the API
|
@@ -39,7 +39,7 @@ module Clever
|
|
39
39
|
def count(filters = {})
|
40
40
|
filters = @filters.merge filters
|
41
41
|
filters[:count] = true
|
42
|
-
response = Clever.request :get, @uri, filters
|
42
|
+
response = Clever.request :get, @uri, filters, headers
|
43
43
|
response[:count]
|
44
44
|
end
|
45
45
|
|
@@ -59,11 +59,11 @@ module Clever
|
|
59
59
|
filters = @filters.merge filters
|
60
60
|
if num.nil?
|
61
61
|
filters[:limit] = 1
|
62
|
-
response = Clever.request :get, url, filters
|
62
|
+
response = Clever.request :get, url, filters, headers
|
63
63
|
Util.convert_to_clever_object response[:data].last
|
64
64
|
else
|
65
65
|
filters[:limit] = num
|
66
|
-
Clever::APIOperations::PageList.new(url, filters).first
|
66
|
+
Clever::APIOperations::PageList.new(url, filters, headers).first
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
@@ -83,11 +83,11 @@ module Clever
|
|
83
83
|
filters[:ending_before] = 'last'
|
84
84
|
if num.nil?
|
85
85
|
filters[:limit] = 1
|
86
|
-
response = Clever.request :get, @uri, filters
|
86
|
+
response = Clever.request :get, @uri, filters, headers
|
87
87
|
Util.convert_to_clever_object response[:data].last
|
88
88
|
else
|
89
89
|
filters[:limit] = num
|
90
|
-
Clever::APIOperations::PageList.new(@uri, filters).to_results_list
|
90
|
+
Clever::APIOperations::PageList.new(@uri, filters, headers).to_results_list
|
91
91
|
end
|
92
92
|
end
|
93
93
|
end
|
@@ -9,11 +9,12 @@ module Clever
|
|
9
9
|
# @return [Clever::APIOperations::Page]
|
10
10
|
# @example
|
11
11
|
# page = Page.new '/v1.1/districts'
|
12
|
-
def initialize(uri, filters = {})
|
12
|
+
def initialize(uri, filters = {}, headers = {})
|
13
13
|
@uri = uri
|
14
14
|
@filters = filters
|
15
|
+
@headers = headers
|
15
16
|
|
16
|
-
response = Clever.request :get, uri, filters
|
17
|
+
response = Clever.request :get, uri, filters, @headers
|
17
18
|
@all = Util.convert_to_clever_object response[:data]
|
18
19
|
@links = {}
|
19
20
|
response[:links].each do |link|
|
@@ -29,7 +30,7 @@ module Clever
|
|
29
30
|
# unless next_page.nil?
|
30
31
|
# next_page.each do |elem| puts elem; end
|
31
32
|
def next
|
32
|
-
@links.key?(:next) ? Page.new(@links[:next]) : nil
|
33
|
+
@links.key?(:next) ? Page.new(@links[:next], {}, @headers) : nil
|
33
34
|
end
|
34
35
|
|
35
36
|
# Iterate over all elements in the page
|
@@ -7,9 +7,10 @@ module Clever
|
|
7
7
|
# Create a new PageList, without making any requests immediately
|
8
8
|
# @api private
|
9
9
|
# @return [PageList]
|
10
|
-
def initialize(uri, filters = {})
|
10
|
+
def initialize(uri, filters = {}, headers = {})
|
11
11
|
@uri = uri
|
12
12
|
@filters = filters
|
13
|
+
@headers = headers
|
13
14
|
end
|
14
15
|
|
15
16
|
# Iterate through each page, making requests as you iterate
|
@@ -22,7 +23,7 @@ module Clever
|
|
22
23
|
# end
|
23
24
|
# end
|
24
25
|
def each
|
25
|
-
page = Page.new @uri, @filters
|
26
|
+
page = Page.new @uri, @filters, @headers
|
26
27
|
until page.nil?
|
27
28
|
yield page
|
28
29
|
page = page.next
|
@@ -68,7 +68,7 @@ module Clever
|
|
68
68
|
# @api private
|
69
69
|
# @return [APIResource] The updated resource instance
|
70
70
|
def refresh
|
71
|
-
response = Clever.request :get, url
|
71
|
+
response = Clever.request :get, url, nil, headers
|
72
72
|
refresh_from response[:data]
|
73
73
|
|
74
74
|
@links = response[:links].map do
|
@@ -89,8 +89,8 @@ module Clever
|
|
89
89
|
# @example
|
90
90
|
# id = '...'
|
91
91
|
# district = Clever::District.retrieve id
|
92
|
-
def self.retrieve(id)
|
93
|
-
instance = new id
|
92
|
+
def self.retrieve(id, auth_token = nil)
|
93
|
+
instance = new id, auth_token
|
94
94
|
instance.refresh
|
95
95
|
instance
|
96
96
|
end
|
@@ -107,21 +107,21 @@ module Clever
|
|
107
107
|
# @abstract
|
108
108
|
# @api private
|
109
109
|
# @return [APIResource]
|
110
|
-
def initialize(id)
|
111
|
-
super id
|
110
|
+
def initialize(id, auth_token = nil)
|
111
|
+
super id, auth_token
|
112
112
|
return if self.class.linked_resources.nil?
|
113
113
|
|
114
114
|
self.class.linked_resources.each do |resource|
|
115
115
|
if Clever::Util.singular? resource.to_s
|
116
116
|
# Get single resource
|
117
117
|
self.class.send :define_method, resource do
|
118
|
-
response = Clever.request :get, get_link_uri(resource)
|
118
|
+
response = Clever.request :get, get_link_uri(resource), {}, headers
|
119
119
|
return Util.convert_to_clever_object response
|
120
120
|
end
|
121
121
|
else
|
122
122
|
# Get list of nested resources
|
123
123
|
self.class.send :define_method, resource do |filters = {}|
|
124
|
-
Clever::NestedResource.new get_link_uri(resource), filters
|
124
|
+
Clever::NestedResource.new get_link_uri(resource), filters, headers
|
125
125
|
end
|
126
126
|
end
|
127
127
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Clever
|
2
2
|
# An instance of an APIResource's contents
|
3
|
-
class CleverObject
|
3
|
+
class CleverObject # rubocop: disable ClassLength
|
4
4
|
include Enumerable
|
5
5
|
|
6
6
|
# TODO: fix this
|
@@ -15,9 +15,10 @@ module Clever
|
|
15
15
|
# @api private
|
16
16
|
# @param id [String, Hash] id, or values to instantiate from
|
17
17
|
# @return [CleverObject] resource instance
|
18
|
-
def initialize(id = nil)
|
18
|
+
def initialize(id = nil, auth_token = nil)
|
19
19
|
@values = {}
|
20
20
|
@values[:id] = id if id
|
21
|
+
@values[:auth_token] = auth_token if auth_token
|
21
22
|
end
|
22
23
|
|
23
24
|
# Construct a CleverObject from the values it should contain. Requires :id
|
@@ -55,7 +56,7 @@ module Clever
|
|
55
56
|
# @param partial [Boolean] whether to replace existing keys or start fresh
|
56
57
|
# @return [CleverObject]
|
57
58
|
def refresh_from(values, partial = false)
|
58
|
-
removed = partial ? Set.new : Set.new(@values.keys - values.keys)
|
59
|
+
removed = partial ? Set.new : Set.new(@values.keys - [:auth_token] - values.keys)
|
59
60
|
added = Set.new(values.keys - @values.keys)
|
60
61
|
|
61
62
|
instance_eval do
|
@@ -73,6 +74,17 @@ module Clever
|
|
73
74
|
end
|
74
75
|
end
|
75
76
|
|
77
|
+
# Returns the headers needed to authorize subsequent requests
|
78
|
+
# @api private
|
79
|
+
# @return [Object] Authorization header with this auth_token
|
80
|
+
def headers
|
81
|
+
if @values.key? :auth_token
|
82
|
+
{ Authorization: 'Bearer ' + @values[:auth_token] }
|
83
|
+
else
|
84
|
+
{}
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
76
88
|
# Access a value by key
|
77
89
|
# @api public
|
78
90
|
# @param k [String, Symbol] Key to access
|
data/lib/clever-ruby/district.rb
CHANGED
@@ -39,7 +39,9 @@ module Clever
|
|
39
39
|
# TODO: remove
|
40
40
|
[:school_pages, :teacher_pages, :section_pages, :student_pages, :event_pages].each do |name|
|
41
41
|
define_method(name) do |filters = {}|
|
42
|
-
Clever::APIOperations::PageList.new get_link_uri(name.to_s.gsub('_page', '')),
|
42
|
+
Clever::APIOperations::PageList.new get_link_uri(name.to_s.gsub('_page', '')),
|
43
|
+
filters,
|
44
|
+
headers
|
43
45
|
end
|
44
46
|
end
|
45
47
|
end
|
@@ -7,10 +7,11 @@ module Clever
|
|
7
7
|
# Create a nested resource
|
8
8
|
# @api private
|
9
9
|
# @return [Clever::APIOperations::NestedList]
|
10
|
-
def initialize(uri, filters = {})
|
10
|
+
def initialize(uri, filters = {}, headers = {})
|
11
11
|
@uri = uri
|
12
12
|
@filters = filters
|
13
|
-
@
|
13
|
+
@headers = headers
|
14
|
+
@results_list = Clever::APIOperations::PageList.new(uri, filters, headers).to_results_list
|
14
15
|
end
|
15
16
|
|
16
17
|
# Query and iterate over results for the params provided during initialization
|
data/lib/clever-ruby/version.rb
CHANGED
@@ -0,0 +1,132 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.clever.com/v1.1/districts/4fd43cc56d11340000000005?
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- '*/*; q=0.5, application/xml'
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
Authorization:
|
15
|
+
- Bearer DEMO_TOKEN
|
16
|
+
User-Agent:
|
17
|
+
- Ruby
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Access-Control-Allow-Headers:
|
24
|
+
- Content-Type,Authorization,X-Requested-With,Accept,Origin,Referer,User-Agent
|
25
|
+
Access-Control-Allow-Methods:
|
26
|
+
- GET,PATCH,POST,DELETE
|
27
|
+
Access-Control-Allow-Origin:
|
28
|
+
- '*'
|
29
|
+
Content-Type:
|
30
|
+
- application/json; charset=utf-8
|
31
|
+
Date:
|
32
|
+
- Tue, 30 Sep 2014 20:13:24 GMT
|
33
|
+
Server:
|
34
|
+
- nginx/1.4.7
|
35
|
+
X-Powered-By:
|
36
|
+
- Express
|
37
|
+
Content-Length:
|
38
|
+
- '518'
|
39
|
+
Connection:
|
40
|
+
- keep-alive
|
41
|
+
body:
|
42
|
+
encoding: UTF-8
|
43
|
+
string: '{"data":{"name":"Demo District","id":"4fd43cc56d11340000000005"},"links":[{"rel":"self","uri":"/v1.1/districts/4fd43cc56d11340000000005"},{"rel":"schools","uri":"/v1.1/districts/4fd43cc56d11340000000005/schools"},{"rel":"teachers","uri":"/v1.1/districts/4fd43cc56d11340000000005/teachers"},{"rel":"students","uri":"/v1.1/districts/4fd43cc56d11340000000005/students"},{"rel":"sections","uri":"/v1.1/districts/4fd43cc56d11340000000005/sections"},{"rel":"events","uri":"/v1.1/districts/4fd43cc56d11340000000005/events"}]}'
|
44
|
+
http_version:
|
45
|
+
recorded_at: Tue, 30 Sep 2014 20:13:25 GMT
|
46
|
+
- request:
|
47
|
+
method: get
|
48
|
+
uri: https://api.clever.com//v1.1/districts/4fd43cc56d11340000000005/events?limit=100000
|
49
|
+
body:
|
50
|
+
encoding: US-ASCII
|
51
|
+
string: ''
|
52
|
+
headers:
|
53
|
+
Accept:
|
54
|
+
- '*/*; q=0.5, application/xml'
|
55
|
+
Accept-Encoding:
|
56
|
+
- gzip, deflate
|
57
|
+
Authorization:
|
58
|
+
- Bearer DEMO_TOKEN
|
59
|
+
User-Agent:
|
60
|
+
- Ruby
|
61
|
+
response:
|
62
|
+
status:
|
63
|
+
code: 200
|
64
|
+
message: OK
|
65
|
+
headers:
|
66
|
+
Access-Control-Allow-Headers:
|
67
|
+
- Content-Type,Authorization,X-Requested-With,Accept,Origin,Referer,User-Agent
|
68
|
+
Access-Control-Allow-Methods:
|
69
|
+
- GET,PATCH,POST,DELETE
|
70
|
+
Access-Control-Allow-Origin:
|
71
|
+
- '*'
|
72
|
+
Content-Type:
|
73
|
+
- application/json; charset=utf-8
|
74
|
+
Date:
|
75
|
+
- Tue, 30 Sep 2014 20:13:25 GMT
|
76
|
+
Server:
|
77
|
+
- nginx/1.4.7
|
78
|
+
X-Powered-By:
|
79
|
+
- Express
|
80
|
+
Content-Length:
|
81
|
+
- '148'
|
82
|
+
Connection:
|
83
|
+
- keep-alive
|
84
|
+
body:
|
85
|
+
encoding: UTF-8
|
86
|
+
string: '{"data":[],"paging":{"current":0,"total":0,"count":0},"links":[{"rel":"self","uri":"/v1.1/districts/4fd43cc56d11340000000005/events?limit=100000"}]}'
|
87
|
+
http_version:
|
88
|
+
recorded_at: Tue, 30 Sep 2014 20:13:25 GMT
|
89
|
+
- request:
|
90
|
+
method: get
|
91
|
+
uri: https://api.clever.com//v1.1/districts/4fd43cc56d11340000000005/events?limit=2
|
92
|
+
body:
|
93
|
+
encoding: US-ASCII
|
94
|
+
string: ''
|
95
|
+
headers:
|
96
|
+
Accept:
|
97
|
+
- '*/*; q=0.5, application/xml'
|
98
|
+
Accept-Encoding:
|
99
|
+
- gzip, deflate
|
100
|
+
Authorization:
|
101
|
+
- Bearer DEMO_TOKEN
|
102
|
+
User-Agent:
|
103
|
+
- Ruby
|
104
|
+
response:
|
105
|
+
status:
|
106
|
+
code: 200
|
107
|
+
message: OK
|
108
|
+
headers:
|
109
|
+
Access-Control-Allow-Headers:
|
110
|
+
- Content-Type,Authorization,X-Requested-With,Accept,Origin,Referer,User-Agent
|
111
|
+
Access-Control-Allow-Methods:
|
112
|
+
- GET,PATCH,POST,DELETE
|
113
|
+
Access-Control-Allow-Origin:
|
114
|
+
- '*'
|
115
|
+
Content-Type:
|
116
|
+
- application/json; charset=utf-8
|
117
|
+
Date:
|
118
|
+
- Tue, 30 Sep 2014 20:13:25 GMT
|
119
|
+
Server:
|
120
|
+
- nginx/1.4.7
|
121
|
+
X-Powered-By:
|
122
|
+
- Express
|
123
|
+
Content-Length:
|
124
|
+
- '143'
|
125
|
+
Connection:
|
126
|
+
- keep-alive
|
127
|
+
body:
|
128
|
+
encoding: UTF-8
|
129
|
+
string: '{"data":[],"paging":{"current":0,"total":0,"count":0},"links":[{"rel":"self","uri":"/v1.1/districts/4fd43cc56d11340000000005/events?limit=2"}]}'
|
130
|
+
http_version:
|
131
|
+
recorded_at: Tue, 30 Sep 2014 20:13:25 GMT
|
132
|
+
recorded_with: VCR 2.9.3
|