getclever-ruby 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/.gitignore +21 -0
  2. data/.rspec +2 -0
  3. data/Gemfile +4 -0
  4. data/Guardfile +13 -0
  5. data/LICENSE +22 -0
  6. data/README.md +71 -0
  7. data/Rakefile +2 -0
  8. data/getclever-ruby.gemspec +24 -0
  9. data/lib/clever.rb +16 -0
  10. data/lib/clever/api.rb +162 -0
  11. data/lib/clever/configuration.rb +10 -0
  12. data/lib/clever/error.rb +12 -0
  13. data/lib/clever/fake_response.rb +8 -0
  14. data/lib/clever/fake_server.rb +2785 -0
  15. data/lib/clever/models/contact.rb +7 -0
  16. data/lib/clever/models/district.rb +7 -0
  17. data/lib/clever/models/photo.rb +7 -0
  18. data/lib/clever/models/school.rb +7 -0
  19. data/lib/clever/models/section.rb +7 -0
  20. data/lib/clever/models/student.rb +7 -0
  21. data/lib/clever/models/teacher.rb +7 -0
  22. data/lib/clever/version.rb +3 -0
  23. data/lib/generators/clever/install_generator.rb +24 -0
  24. data/lib/generators/clever/templates/clever.yml +8 -0
  25. data/lib/generators/clever/templates/initializer.rb +3 -0
  26. data/lib/generators/crocodoc.rb +11 -0
  27. data/spec/api_spec.rb +0 -0
  28. data/spec/configuration_spec.rb +11 -0
  29. data/spec/endpoints/districts_spec.rb +86 -0
  30. data/spec/endpoints/schools_spec.rb +88 -0
  31. data/spec/endpoints/sections_spec.rb +74 -0
  32. data/spec/endpoints/students_spec.rb +100 -0
  33. data/spec/endpoints/teachers_spec.rb +85 -0
  34. data/spec/error_spec.rb +0 -0
  35. data/spec/fake_server_spec.rb +0 -0
  36. data/spec/models/contact_spec.rb +38 -0
  37. data/spec/models/district_spec.rb +24 -0
  38. data/spec/models/photo_spec.rb +23 -0
  39. data/spec/models/school_spec.rb +53 -0
  40. data/spec/models/section_spec.rb +48 -0
  41. data/spec/models/student_spec.rb +73 -0
  42. data/spec/models/teacher_spec.rb +46 -0
  43. data/spec/spec_helper.rb +16 -0
  44. metadata +201 -0
data/.gitignore ADDED
@@ -0,0 +1,21 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+
19
+ /.idea/
20
+ /.rvmrc
21
+ /atlassian-ide-plugin.xml
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in getclever-ruby.gemspec
4
+ gemspec
data/Guardfile ADDED
@@ -0,0 +1,13 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'rspec', :version => 2 do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+
9
+ watch(%r{^lib/clever/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
10
+ watch(%r{^lib/clever/endpoints/(.+)\.rb$}) { |m| "spec/endpoints/#{m[1]}_spec.rb" }
11
+ watch(%r{^lib/clever/models/(.+)\.rb$}) { |m| "spec/models/#{m[1]}_spec.rb" }
12
+ end
13
+
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Lexim Pty. Ltd.
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,71 @@
1
+ # Getclever::Ruby
2
+
3
+ This is a ruby library for interacting with v1.1 of the [Clever](https://getclever.com) API.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'getclever-ruby'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install getclever-ruby
18
+
19
+ ## Configuration
20
+
21
+ $ rails g getclever:install --api-key your_key_here
22
+
23
+ The generator adds two files for your rails project:
24
+
25
+ * config/clever.yml
26
+ * config/initializers/clever.rb
27
+
28
+ Customise the config/clever.yml config file if you wish to use different API tokens per environment (by default it uses the same token in development, test and production).
29
+
30
+ ### Rails application
31
+
32
+ The Clever API is configured during rails initialization, and no further configuration is necessary before use.
33
+
34
+ ### Non-rails application
35
+
36
+ When using the Clever gem in a non-rails application, you must configure it to use your Clever API Key manually:
37
+
38
+ ```ruby
39
+ Clever.configure do |config|
40
+ config.api_key = 'MY_CLEVER_KEY'
41
+ end
42
+ ```
43
+
44
+ ## Usage
45
+
46
+ Once configured, you can start using the API:
47
+
48
+ ### Get a list of Districts
49
+
50
+ ```ruby
51
+ require 'clever/api'
52
+
53
+ api = Clever::API.new
54
+ districts = api.districts({:limit => 10})
55
+
56
+ # => {:paging=>nil, :data=>[#<Clever::Models::District:0x007fca7a4fd7f0 @name="Demo District", @id="4fd43cc56d11340000000005">]}
57
+
58
+ api.districts({:limit => 10})[:data][0].name
59
+
60
+ # => "Demo District"
61
+ ```
62
+
63
+ View the
64
+
65
+ ## Contributing
66
+
67
+ 1. Fork it
68
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
69
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
70
+ 4. Push to the branch (`git push origin my-new-feature`)
71
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env rake
2
+ require "bundler/gem_tasks"
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/clever/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.authors = %w(Lexim)
6
+ gem.email = %w(hello@getlexim.com)
7
+ gem.summary = %q{Ruby library for interacting with the Clever API}
8
+ gem.homepage = "http://github.com/lexim/getclever-ruby"
9
+
10
+ gem.files = `git ls-files`.split($\)
11
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
12
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
13
+ gem.name = "getclever-ruby"
14
+ gem.require_paths = ["lib"]
15
+ gem.version = Clever::VERSION
16
+
17
+ gem.add_dependency 'json'
18
+ gem.add_dependency 'activesupport'
19
+
20
+ gem.add_development_dependency "rspec"
21
+ gem.add_development_dependency "spork", '~> 0.9.0.rc'
22
+ gem.add_development_dependency 'guard-rspec', '~> 0.7.0'
23
+ gem.add_development_dependency 'terminal-notifier-guard'
24
+ end
data/lib/clever.rb ADDED
@@ -0,0 +1,16 @@
1
+ require 'active_support/configurable'
2
+ require 'clever/configuration'
3
+
4
+ module Clever
5
+ class << self
6
+ def configure(&block)
7
+ yield @config ||= Configuration.new
8
+ end
9
+
10
+ def config
11
+ @config
12
+ end
13
+ end
14
+ module Models end
15
+ module Endpoints end
16
+ end
data/lib/clever/api.rb ADDED
@@ -0,0 +1,162 @@
1
+ require 'net/https'
2
+ require 'json'
3
+
4
+ require 'clever/error'
5
+ require 'clever/models/contact'
6
+ require 'clever/models/district'
7
+ require 'clever/models/photo'
8
+ require 'clever/models/school'
9
+ require 'clever/models/section'
10
+ require 'clever/models/student'
11
+ require 'clever/models/teacher'
12
+
13
+ # Public: This is a ruby library for interacting with v1.1 of the Clever (https://getclever.com) API.
14
+ #
15
+ # Examples
16
+ #
17
+ # Clever::API.new.district('4fd43cc56d11340000000005')
18
+ # # => { "data": { "name": "Demo District", "id": "4fd43cc56d11340000000005"} }...
19
+ class Clever::API
20
+ attr_accessor :http
21
+
22
+ BASE_URL = 'https://api.getclever.com/v1.1'
23
+
24
+ def initialize
25
+ @url = URI.parse(BASE_URL)
26
+ @http = Net::HTTP.new(@url.host, @url.port)
27
+ @http.use_ssl = true
28
+ @http.verify_mode = OpenSSL::SSL::VERIFY_PEER
29
+ end
30
+
31
+ # -- Specific behaviour --
32
+ def teacher_grade_levels(id)
33
+ api_call(:get, "teachers/#{id}/grade_levels")['data'].map {|i| i.to_i}
34
+ end
35
+
36
+ # -- Generic behaviour for remainder of methods --
37
+
38
+ def method_missing(sym, *args, &block)
39
+ id, params = nil
40
+
41
+ if args.length == 1
42
+ params = (args[0].is_a?(Hash) ? args[0] : nil)
43
+ id = (args[0].is_a?(Hash) ? nil : args[0])
44
+ elsif args.length == 2
45
+ params = (args[1].is_a?(Hash) ? args[1] : nil)
46
+ id = args[0]
47
+ end
48
+
49
+ resource, action = sym.to_s.split('_')
50
+ is_collection = resource[-1..-1] == 's' || (!action.nil? && action[-1..-1] == 's')
51
+
52
+ if resource[-1..-1] != 's'
53
+ resource = resource + 's'
54
+ end
55
+
56
+ raw_body = api_call(:get, "#{resource}/#{id}/#{action}".gsub(/\/{1,2}$/, ''), params)
57
+
58
+ klass = eval('Clever::Models::' + (action.nil? ? resource.chomp.gsub(/s$/, '').capitalize : action.chomp.gsub(/s$/, '').capitalize))
59
+
60
+ if is_collection
61
+ clever_response(raw_body, raw_body['data'].map { |e| klass.new(e['data'].nil? ? e : e['data']) })
62
+ else
63
+ if raw_body['data'].is_a? Array
64
+ klass.new raw_body['data'][0]['data']
65
+ else
66
+ if raw_body['data']['data'].nil? || !raw_body['data']['data'].is_a?(Hash)
67
+ klass.new raw_body['data']
68
+ else
69
+ klass.new raw_body['data']['data']
70
+ end
71
+ end
72
+
73
+ end
74
+
75
+ #rescue
76
+ # super
77
+ end
78
+
79
+ # -- API Glue --
80
+
81
+ # Internal: Setup the api call, format the parameters, send the request,
82
+ # parse the response and return it.
83
+ #
84
+ # method - The http verb to use, currently :get or :post
85
+ # endpoint - The api endpoint to hit. this is the part after
86
+ # api.getclever.com/v1.1/.
87
+ # params - Parameters to send with the api call, either as a query string
88
+ # (get) or form params (post).
89
+ #
90
+ # Examples
91
+ #
92
+ # api_call(:post,
93
+ # "districts",
94
+ # {})
95
+ # # => { "data": [{"data": "name": "Demo Distract", "id": "8e5b0721-26c4-11df-b354-002170de47d3"}]}
96
+ #
97
+ # Returns the json parsed response body of the call
98
+ def api_call(method, endpoint, params={}, format=:json)
99
+
100
+ # dispatch to the right method, with the full path (/api/v2 + endpoint)
101
+ request = self.send("format_#{method}", "#{@url.path}/#{endpoint}", params)
102
+ response = @http.request(request)
103
+
104
+ # Possible Responses
105
+ #
106
+ # 200 - (OK) Successful request
107
+ # 400 - (Bad Request) There was a problem with your request parameters. Check
108
+ # the error field of the response object for info on what was wrong.
109
+ # 401 - (Unauthorized) Bad api_key or not authorized to access a resource.
110
+ # 404 - (Not Found) The resource requested doesn't exist.
111
+ # 500 - Server errors. Clever screwed up.
112
+
113
+ unless response.code == '200'
114
+ raise Clever::Error.new response.code, response.body
115
+ end
116
+
117
+ if format == :json
118
+ return JSON.parse(response.body)
119
+ end
120
+
121
+ response.body
122
+ end
123
+
124
+ # Internal: Format and create a Net::HTTP get request, with query
125
+ # parameters.
126
+ #
127
+ # path - the path to get
128
+ # params - the params to add as query params to the path
129
+ #
130
+ # Examples
131
+ #
132
+ # format_post("/api.getclever.com/v1.1/districts",
133
+ # {})
134
+ # # => <Net::HTTP::Get:<id>> for
135
+ # # "/api.getclever.com/v1.1/districts"
136
+ #
137
+ # Returns a Net::HTTP::Get object for the path with query params
138
+ def format_get(path, params)
139
+ unless params.nil?
140
+ query = params.map { |k, v| "#{k}=#{URI::escape(v.to_s)}" }.join("&")
141
+ end
142
+
143
+ request = Net::HTTP::Get.new("#{path}?#{query}")
144
+ request.basic_auth(Clever.config.api_key, '')
145
+
146
+ request
147
+ end
148
+
149
+ def clever_response raw_body, objects
150
+ paging = if raw_body['paging'].nil?
151
+ nil
152
+ else
153
+ {
154
+ :current => raw_body['paging']['current'],
155
+ :total => raw_body['paging']['total'],
156
+ :count => raw_body['paging']['count']
157
+ }
158
+ end
159
+
160
+ {:paging => paging, :data => objects}
161
+ end
162
+ end
@@ -0,0 +1,10 @@
1
+ module Clever
2
+ class Configuration
3
+ include ActiveSupport::Configurable
4
+ config_accessor :api_key
5
+
6
+ def param_name
7
+ config.param_name.respond_to?(:call) ? config.param_name.call : config.param_name
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,12 @@
1
+ class Clever::Error < StandardError
2
+ attr_accessor :code, :message
3
+
4
+ def initialize code, message
5
+ @code = code
6
+ @message = message
7
+ end
8
+
9
+ def message
10
+ "HTTP Error #{@code}: #{@message}"
11
+ end
12
+ end
@@ -0,0 +1,8 @@
1
+ class Clever::FakeResponse
2
+ attr_accessor :code, :body
3
+
4
+ def initialize(code, body)
5
+ @code = code
6
+ @body = body
7
+ end
8
+ end
@@ -0,0 +1,2785 @@
1
+ require 'clever/fake_response'
2
+
3
+ class Clever::FakeServer
4
+ attr_accessor :api_key
5
+
6
+ def initialize opts
7
+ @api_key = opts[:api_key]
8
+ end
9
+
10
+ def request(req, body=nil)
11
+ return Clever::FakeResponse.new("404", "") unless req.path.start_with? "/v1.1/"
12
+
13
+ path, params = req.path.split('?')
14
+ resource, id, action = path.gsub(/(\/v1\.1\/|\?$)/, "").split('/')
15
+
16
+ if action.nil? && id.nil?
17
+ path = resource
18
+ elsif id.nil?
19
+ path = resource.gsub(/s$/, '')
20
+ else
21
+ path = resource.gsub(/s$/, '') + (action.nil? ? '' : "_#{action}")
22
+ end
23
+
24
+ self.send(path, req.method)
25
+
26
+ #rescue => exception
27
+ # return Clever::FakeResponse.new("500", exception.message)
28
+ end
29
+
30
+ def method_missing(sym, *args, &block)
31
+ if Clever::FakeJson.const_defined? sym.to_s.upcase
32
+ return get_json(args[0], Clever::FakeJson.const_get(sym.to_s.upcase))
33
+ end
34
+
35
+ super
36
+ end
37
+
38
+ def get_json verb, json
39
+ unless verb == "GET"
40
+ return Clever::FakeResponse.new("405", "")
41
+ end
42
+
43
+ Clever::FakeResponse.new("200", json)
44
+ end
45
+ end
46
+
47
+ class Clever::FakeJson
48
+ DISTRICTS = '{
49
+ "paging": {
50
+ "current": 1,
51
+ "total": 1,
52
+ "count": 1
53
+ },
54
+ "data": [
55
+ {
56
+ "data": {
57
+ "name": "Demo District",
58
+ "id": "4fd43cc56d11340000000005"
59
+ },
60
+ "uri": "/v1.1/districts/4fd43cc56d11340000000005"
61
+ }
62
+ ],
63
+ "links": [
64
+ {
65
+ "rel": "self",
66
+ "uri": "/v1.1/districts"
67
+ }
68
+ ]
69
+ }'
70
+
71
+ DISTRICT = '{
72
+ "data": {
73
+ "name": "Demo District",
74
+ "id": "4fd43cc56d11340000000005"
75
+ },
76
+ "links": [
77
+ {
78
+ "rel": "self",
79
+ "uri": "/v1.1/districts/503675a3da2a1abb43000049"
80
+ },
81
+ {
82
+ "rel": "schools",
83
+ "uri": "/v1.1/districts/503675a3da2a1abb43000049/schools"
84
+ },
85
+ {
86
+ "rel": "teachers",
87
+ "uri": "/v1.1/districts/503675a3da2a1abb43000049/teachers"
88
+ },
89
+ {
90
+ "rel": "students",
91
+ "uri": "/v1.1/districts/503675a3da2a1abb43000049/students"
92
+ },
93
+ {
94
+ "rel": "sections",
95
+ "uri": "/v1.1/districts/503675a3da2a1abb43000049/sections"
96
+ }
97
+ ]
98
+ }'
99
+
100
+ DISTRICT_SCHOOLS = '{
101
+ "data": [
102
+ {
103
+ "data": {
104
+ "district": "4fd43cc56d11340000000005",
105
+ "high_grade": "8",
106
+ "low_grade": "6",
107
+ "name": "Clever Academy",
108
+ "nces_id": "17065379",
109
+ "phone": "1-755-019-5442",
110
+ "school_number": "214",
111
+ "sis_id": "9255",
112
+ "location": {
113
+ "address": "18828 Kutch Court",
114
+ "city": "Dessiemouth",
115
+ "state": "IA",
116
+ "zip": "37471-9969"
117
+ },
118
+ "principal": {
119
+ "name": "Colleen Gottlieb",
120
+ "email": "Eda_Barrows@mailinator.com"
121
+ },
122
+ "last_modified": "2012-06-29T19:21:50.592Z",
123
+ "id": "4fee004cca2e43cf27000001"
124
+ },
125
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000001"
126
+ },
127
+ {
128
+ "data": {
129
+ "district": "4fd43cc56d11340000000005",
130
+ "high_grade": "8",
131
+ "low_grade": "6",
132
+ "name": "Clever Preparatory",
133
+ "nces_id": "94755881",
134
+ "phone": "772-761-5171 x26385",
135
+ "school_number": "426",
136
+ "sis_id": "2559",
137
+ "location": {
138
+ "address": "42139 Fadel Mountains",
139
+ "city": "Thomasfort",
140
+ "state": "AP",
141
+ "zip": "61397-3760"
142
+ },
143
+ "principal": {
144
+ "name": "Rudolph Howe",
145
+ "email": "Nikolas@mailinator.com"
146
+ },
147
+ "last_modified": "2012-06-29T19:21:50.637Z",
148
+ "id": "4fee004cca2e43cf27000002"
149
+ },
150
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000002"
151
+ },
152
+ {
153
+ "data": {
154
+ "district": "4fd43cc56d11340000000005",
155
+ "high_grade": "8",
156
+ "low_grade": "6",
157
+ "name": "Clever High School",
158
+ "nces_id": "44270647",
159
+ "phone": "1-895-295-3507",
160
+ "school_number": "481",
161
+ "sis_id": "4083",
162
+ "location": {
163
+ "address": "9538 Leffler Forks",
164
+ "city": "Gwendolynville",
165
+ "state": "NH",
166
+ "zip": "58530-7427"
167
+ },
168
+ "principal": {
169
+ "name": "Krystal Kiehn",
170
+ "email": "Domingo_Williamson@mailinator.com"
171
+ },
172
+ "last_modified": "2012-06-29T19:21:50.661Z",
173
+ "id": "4fee004cca2e43cf27000003"
174
+ },
175
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000003"
176
+ },
177
+ {
178
+ "data": {
179
+ "district": "4fd43cc56d11340000000005",
180
+ "high_grade": "8",
181
+ "low_grade": "6",
182
+ "name": "Clever Memorial High",
183
+ "nces_id": "26309489",
184
+ "phone": "1-124-215-8079",
185
+ "school_number": "797",
186
+ "sis_id": "3935",
187
+ "location": {
188
+ "address": "10960 Kilback View",
189
+ "city": "North Sarina",
190
+ "state": "MP",
191
+ "zip": "58717-8256"
192
+ },
193
+ "principal": {
194
+ "name": "Maryse Tillman",
195
+ "email": "Otto_Sanford@mailinator.com"
196
+ },
197
+ "last_modified": "2012-06-29T19:21:50.685Z",
198
+ "id": "4fee004cca2e43cf27000004"
199
+ },
200
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000004"
201
+ }
202
+ ],
203
+ "links": [
204
+ {
205
+ "rel": "self",
206
+ "uri": "/v1.1/districts/4fd43cc56d11340000000005/schools"
207
+ }
208
+ ]
209
+ }'
210
+
211
+ DISTRICT_TEACHERS = '{
212
+ "paging": {
213
+ "current": 1,
214
+ "total": 5,
215
+ "count": 50
216
+ },
217
+ "data": [
218
+ {
219
+ "data": {
220
+ "district": "4fd43cc56d11340000000005",
221
+ "email": "ashlee@mailinator.com",
222
+ "school": "4fee004cca2e43cf27000003",
223
+ "sis_id": "1720",
224
+ "title": "Orchestrate Visionary Technologies Manager",
225
+ "name": {
226
+ "first": "Nadia",
227
+ "middle": "H",
228
+ "last": "Mitchell"
229
+ },
230
+ "last_modified": "2012-06-29T19:22:16.552Z",
231
+ "id": "4fee004dca2e43cf270007d5"
232
+ },
233
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007d5"
234
+ },
235
+ {
236
+ "data": {
237
+ "district": "4fd43cc56d11340000000005",
238
+ "email": "rowland@mailinator.com",
239
+ "school": "4fee004cca2e43cf27000002",
240
+ "sis_id": "6636",
241
+ "title": "Matrix B2c Markets Manager",
242
+ "name": {
243
+ "first": "Eugenia",
244
+ "middle": "L",
245
+ "last": "Schuppe"
246
+ },
247
+ "last_modified": "2012-06-29T19:22:16.574Z",
248
+ "id": "4fee004dca2e43cf270007d6"
249
+ },
250
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007d6"
251
+ },
252
+ {
253
+ "data": {
254
+ "district": "4fd43cc56d11340000000005",
255
+ "email": "wilfrid.bogan@mailinator.com",
256
+ "school": "4fee004cca2e43cf27000004",
257
+ "sis_id": "4572",
258
+ "title": "Generate Cross-platform Models Manager",
259
+ "name": {
260
+ "first": "Anibal",
261
+ "middle": "N",
262
+ "last": "Will"
263
+ },
264
+ "last_modified": "2012-06-29T19:22:16.597Z",
265
+ "id": "4fee004dca2e43cf270007d7"
266
+ },
267
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007d7"
268
+ },
269
+ {
270
+ "data": {
271
+ "district": "4fd43cc56d11340000000005",
272
+ "email": "adaline_kunze@mailinator.com",
273
+ "school": "4fee004cca2e43cf27000001",
274
+ "sis_id": "7408",
275
+ "title": "Disintermediate Visionary Architectures Manager",
276
+ "name": {
277
+ "first": "Alec",
278
+ "middle": "G",
279
+ "last": "Lubowitz"
280
+ },
281
+ "last_modified": "2012-06-29T19:22:16.621Z",
282
+ "id": "4fee004dca2e43cf270007d8"
283
+ },
284
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007d8"
285
+ },
286
+ {
287
+ "data": {
288
+ "district": "4fd43cc56d11340000000005",
289
+ "email": "lillian@mailinator.com",
290
+ "school": "4fee004cca2e43cf27000003",
291
+ "sis_id": "5320",
292
+ "title": "Harness Ubiquitous Convergence Manager",
293
+ "name": {
294
+ "first": "Bridget",
295
+ "middle": "B",
296
+ "last": "Kulas"
297
+ },
298
+ "last_modified": "2012-06-29T19:22:16.645Z",
299
+ "id": "4fee004dca2e43cf270007d9"
300
+ },
301
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007d9"
302
+ },
303
+ {
304
+ "data": {
305
+ "district": "4fd43cc56d11340000000005",
306
+ "email": "yessenia@mailinator.com",
307
+ "school": "4fee004cca2e43cf27000002",
308
+ "sis_id": "2819",
309
+ "title": "Drive B2b Bandwidth Manager",
310
+ "name": {
311
+ "first": "Elenor",
312
+ "middle": "E",
313
+ "last": "Waters"
314
+ },
315
+ "last_modified": "2012-06-29T19:22:16.672Z",
316
+ "id": "4fee004dca2e43cf270007da"
317
+ },
318
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007da"
319
+ },
320
+ {
321
+ "data": {
322
+ "district": "4fd43cc56d11340000000005",
323
+ "email": "grant@mailinator.com",
324
+ "school": "4fee004cca2e43cf27000001",
325
+ "sis_id": "7788",
326
+ "title": "Synergize E-business Technologies Manager",
327
+ "name": {
328
+ "first": "Reta",
329
+ "middle": "O",
330
+ "last": "West"
331
+ },
332
+ "last_modified": "2012-06-29T19:22:16.696Z",
333
+ "id": "4fee004dca2e43cf270007db"
334
+ },
335
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007db"
336
+ },
337
+ {
338
+ "data": {
339
+ "district": "4fd43cc56d11340000000005",
340
+ "email": "heath@mailinator.com",
341
+ "school": "4fee004cca2e43cf27000003",
342
+ "sis_id": "1838",
343
+ "title": "Grow User-centric Markets Manager",
344
+ "name": {
345
+ "first": "Fannie",
346
+ "middle": "F",
347
+ "last": "Prosacco"
348
+ },
349
+ "last_modified": "2012-06-29T19:22:16.723Z",
350
+ "id": "4fee004dca2e43cf270007dc"
351
+ },
352
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007dc"
353
+ },
354
+ {
355
+ "data": {
356
+ "district": "4fd43cc56d11340000000005",
357
+ "email": "korbin@mailinator.com",
358
+ "school": "4fee004cca2e43cf27000004",
359
+ "sis_id": "4353",
360
+ "title": "Utilize Customized Channels Manager",
361
+ "name": {
362
+ "first": "Emelie",
363
+ "middle": "J",
364
+ "last": "Wunsch"
365
+ },
366
+ "last_modified": "2012-06-29T19:22:16.749Z",
367
+ "id": "4fee004dca2e43cf270007dd"
368
+ },
369
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007dd"
370
+ },
371
+ {
372
+ "data": {
373
+ "district": "4fd43cc56d11340000000005",
374
+ "email": "wava.maggio@mailinator.com",
375
+ "school": "4fee004cca2e43cf27000004",
376
+ "sis_id": "6628",
377
+ "title": "Leverage 24/365 Experiences Manager",
378
+ "name": {
379
+ "first": "Nasir",
380
+ "middle": "",
381
+ "last": "Breitenberg"
382
+ },
383
+ "last_modified": "2012-06-29T19:22:16.772Z",
384
+ "id": "4fee004dca2e43cf270007de"
385
+ },
386
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007de"
387
+ }
388
+ ],
389
+ "links": [
390
+ {
391
+ "rel": "self",
392
+ "uri": "/v1.1/districts/4fd43cc56d11340000000005/teachers?limit=10"
393
+ },
394
+ {
395
+ "rel": "next",
396
+ "uri": "/v1.1/districts/4fd43cc56d11340000000005/teachers?limit=10&page=2"
397
+ }
398
+ ]
399
+ }'
400
+
401
+ DISTRICT_STUDENTS = '{
402
+ "paging": {
403
+ "current": 1,
404
+ "total": 200,
405
+ "count": 1000
406
+ },
407
+ "data": [
408
+ {
409
+ "data": {
410
+ "district": "4fd43cc56d11340000000005",
411
+ "dob": "12/12/1998",
412
+ "frl_status": "Y",
413
+ "gender": "M",
414
+ "grade": "7",
415
+ "hispanic_ethnicity": "N",
416
+ "race": "Asian",
417
+ "school": "4fee004cca2e43cf27000003",
418
+ "sis_id": "1783",
419
+ "state_id": "2237504",
420
+ "student_number": "24772",
421
+ "location": {
422
+ "address": "9272 Ratke Haven",
423
+ "city": "North Maurinetown",
424
+ "state": "AP",
425
+ "zip": "22505-3577",
426
+ "lat": "-21.901449509896338",
427
+ "lon": "114.23126022331417"
428
+ },
429
+ "name": {
430
+ "first": "Constance",
431
+ "middle": "",
432
+ "last": "Roob"
433
+ },
434
+ "last_modified": "2012-06-29T19:21:50.709Z",
435
+ "id": "4fee004cca2e43cf27000005"
436
+ },
437
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005"
438
+ },
439
+ {
440
+ "data": {
441
+ "district": "4fd43cc56d11340000000005",
442
+ "dob": "1/18/2000",
443
+ "frl_status": "Y",
444
+ "gender": "M",
445
+ "grade": "8",
446
+ "hispanic_ethnicity": "N",
447
+ "race": "Two or More Races",
448
+ "school": "4fee004cca2e43cf27000002",
449
+ "sis_id": "2113",
450
+ "state_id": "4512383",
451
+ "student_number": "34989",
452
+ "location": {
453
+ "address": "18358 Farrell Corners",
454
+ "city": "West Mario",
455
+ "state": "AL",
456
+ "zip": "42169",
457
+ "lat": "20.2340585924685",
458
+ "lon": "179.6191607695073"
459
+ },
460
+ "name": {
461
+ "first": "Roxane",
462
+ "middle": "M",
463
+ "last": "Weissnat"
464
+ },
465
+ "last_modified": "2012-06-29T19:21:50.736Z",
466
+ "id": "4fee004cca2e43cf27000007"
467
+ },
468
+ "uri": "/v1.1/students/4fee004cca2e43cf27000007"
469
+ },
470
+ {
471
+ "data": {
472
+ "district": "4fd43cc56d11340000000005",
473
+ "dob": "10/17/1998",
474
+ "frl_status": "Y",
475
+ "gender": "F",
476
+ "grade": "6",
477
+ "hispanic_ethnicity": "N",
478
+ "race": "Caucasian",
479
+ "school": "4fee004cca2e43cf27000003",
480
+ "sis_id": "1586",
481
+ "state_id": "2387048",
482
+ "student_number": "48387",
483
+ "location": {
484
+ "address": "85702 Cartwright Knoll",
485
+ "city": "Port Kasandraport",
486
+ "state": "ME",
487
+ "zip": "19541-8961",
488
+ "lat": "-19.12011313252151",
489
+ "lon": "-77.21223609521985"
490
+ },
491
+ "name": {
492
+ "first": "Lola",
493
+ "middle": "S",
494
+ "last": "Tremblay"
495
+ },
496
+ "last_modified": "2012-06-29T19:21:50.760Z",
497
+ "id": "4fee004cca2e43cf27000009"
498
+ },
499
+ "uri": "/v1.1/students/4fee004cca2e43cf27000009"
500
+ },
501
+ {
502
+ "data": {
503
+ "district": "4fd43cc56d11340000000005",
504
+ "dob": "4/5/1998",
505
+ "frl_status": "Y",
506
+ "gender": "F",
507
+ "grade": "7",
508
+ "hispanic_ethnicity": "N",
509
+ "race": "Caucasian",
510
+ "school": "4fee004cca2e43cf27000003",
511
+ "sis_id": "4875",
512
+ "state_id": "3905945",
513
+ "student_number": "15593",
514
+ "location": {
515
+ "address": "13961 Lueilwitz Cliff",
516
+ "city": "Deondreburgh",
517
+ "state": "MN",
518
+ "zip": "89575-9808",
519
+ "lat": "14.23999706748873",
520
+ "lon": "128.96796497516334"
521
+ },
522
+ "name": {
523
+ "first": "Korey",
524
+ "middle": "R",
525
+ "last": "Orn"
526
+ },
527
+ "last_modified": "2012-06-29T19:21:50.785Z",
528
+ "id": "4fee004cca2e43cf2700000b"
529
+ },
530
+ "uri": "/v1.1/students/4fee004cca2e43cf2700000b"
531
+ },
532
+ {
533
+ "data": {
534
+ "district": "4fd43cc56d11340000000005",
535
+ "dob": "10/18/1998",
536
+ "frl_status": "N",
537
+ "gender": "F",
538
+ "grade": "8",
539
+ "hispanic_ethnicity": "N",
540
+ "race": "Caucasian",
541
+ "school": "4fee004cca2e43cf27000004",
542
+ "sis_id": "7921",
543
+ "state_id": "3432723",
544
+ "student_number": "49789",
545
+ "location": {
546
+ "address": "9629 Champlin Loop",
547
+ "city": "New Bradley",
548
+ "state": "MS",
549
+ "zip": "72776",
550
+ "lat": "-62.99142876639962",
551
+ "lon": "93.68024323135614"
552
+ },
553
+ "name": {
554
+ "first": "Horace",
555
+ "middle": "P",
556
+ "last": "Hermann"
557
+ },
558
+ "last_modified": "2012-06-29T19:21:50.809Z",
559
+ "id": "4fee004cca2e43cf2700000d"
560
+ },
561
+ "uri": "/v1.1/students/4fee004cca2e43cf2700000d"
562
+ }
563
+ ],
564
+ "links": [
565
+ {
566
+ "rel": "self",
567
+ "uri": "/v1.1/districts/4fd43cc56d11340000000005/students?limit=5"
568
+ },
569
+ {
570
+ "rel": "next",
571
+ "uri": "/v1.1/districts/4fd43cc56d11340000000005/students?limit=5&page=2"
572
+ }
573
+ ]
574
+ }'
575
+
576
+ DISTRICT_SECTIONS = '{
577
+ "paging": {
578
+ "current": 1,
579
+ "total": 37,
580
+ "count": 73
581
+ },
582
+ "data": [
583
+ {
584
+ "data": {
585
+ "district": "4fd43cc56d11340000000005",
586
+ "grade": "7",
587
+ "name": "Advanced Arithmetic 8(A)",
588
+ "school": "4fee004cca2e43cf27000004",
589
+ "section_number": "76",
590
+ "sis_id": "3838",
591
+ "subject": "math",
592
+ "teacher": "4fee004dca2e43cf270007f4",
593
+ "students": [
594
+ "4fee004dca2e43cf270004ed",
595
+ "4fee004dca2e43cf2700069f",
596
+ "4fee004cca2e43cf27000177",
597
+ "4fee004cca2e43cf270002b7",
598
+ "4fee004cca2e43cf27000437",
599
+ "4fee004dca2e43cf2700066b",
600
+ "4fee004dca2e43cf2700061f",
601
+ "4fee004dca2e43cf27000701",
602
+ "4fee004dca2e43cf2700054d",
603
+ "4fee004cca2e43cf270002b5",
604
+ "4fee004dca2e43cf27000501",
605
+ "4fee004dca2e43cf27000617",
606
+ "4fee004cca2e43cf270000af",
607
+ "4fee004dca2e43cf27000597",
608
+ "4fee004dca2e43cf27000719",
609
+ "4fee004cca2e43cf27000043",
610
+ "4fee004dca2e43cf27000755",
611
+ "4fee004cca2e43cf270003df",
612
+ "4fee004cca2e43cf27000221",
613
+ "4fee004dca2e43cf2700054b",
614
+ "4fee004dca2e43cf270004ff",
615
+ "4fee004cca2e43cf27000325"
616
+ ],
617
+ "last_modified": "2012-06-29T19:22:17.766Z",
618
+ "id": "4fee004dca2e43cf27000807"
619
+ },
620
+ "uri": "/v1.1/sections/4fee004dca2e43cf27000807"
621
+ },
622
+ {
623
+ "data": {
624
+ "district": "4fd43cc56d11340000000005",
625
+ "grade": "6",
626
+ "name": "Planetary Chemistry 5(B)",
627
+ "school": "4fee004cca2e43cf27000001",
628
+ "section_number": "85",
629
+ "sis_id": "4917",
630
+ "subject": "science",
631
+ "teacher": "4fee004dca2e43cf270007f9",
632
+ "students": [
633
+ "4fee004cca2e43cf2700008b",
634
+ "4fee004dca2e43cf270006f9",
635
+ "4fee004cca2e43cf27000201",
636
+ "4fee004dca2e43cf27000675",
637
+ "4fee004cca2e43cf2700011f",
638
+ "4fee004cca2e43cf2700016f",
639
+ "4fee004dca2e43cf2700076d",
640
+ "4fee004dca2e43cf27000777",
641
+ "4fee004cca2e43cf270001b7",
642
+ "4fee004cca2e43cf270002c9",
643
+ "4fee004dca2e43cf270005a9",
644
+ "4fee004cca2e43cf2700030d",
645
+ "4fee004cca2e43cf2700003f",
646
+ "4fee004dca2e43cf2700076d",
647
+ "4fee004dca2e43cf27000769",
648
+ "4fee004cca2e43cf2700042b",
649
+ "4fee004dca2e43cf27000551",
650
+ "4fee004cca2e43cf27000071",
651
+ "4fee004dca2e43cf270005cd",
652
+ "4fee004dca2e43cf2700045f",
653
+ "4fee004dca2e43cf270004bf",
654
+ "4fee004cca2e43cf27000017",
655
+ "4fee004dca2e43cf270004f9",
656
+ "4fee004cca2e43cf27000417",
657
+ "4fee004cca2e43cf27000213",
658
+ "4fee004cca2e43cf2700013b",
659
+ "4fee004dca2e43cf27000699",
660
+ "4fee004dca2e43cf27000787",
661
+ "4fee004cca2e43cf27000049",
662
+ "4fee004dca2e43cf270005e5",
663
+ "4fee004dca2e43cf2700052d",
664
+ "4fee004dca2e43cf27000479",
665
+ "4fee004cca2e43cf2700010f",
666
+ "4fee004dca2e43cf270004af",
667
+ "4fee004cca2e43cf27000425"
668
+ ],
669
+ "last_modified": "2012-06-29T19:22:17.789Z",
670
+ "id": "4fee004dca2e43cf27000808"
671
+ },
672
+ "uri": "/v1.1/sections/4fee004dca2e43cf27000808"
673
+ }
674
+ ],
675
+ "links": [
676
+ {
677
+ "rel": "self",
678
+ "uri": "/v1.1/districts/4fd43cc56d11340000000005/sections?limit=2"
679
+ },
680
+ {
681
+ "rel": "next",
682
+ "uri": "/v1.1/districts/4fd43cc56d11340000000005/sections?limit=2&page=2"
683
+ }
684
+ ]
685
+ }'
686
+
687
+ SCHOOLS = '{
688
+ "paging": {
689
+ "current": 1,
690
+ "total": 2,
691
+ "count": 4
692
+ },
693
+ "data": [
694
+ {
695
+ "data": {
696
+ "district": "4fd43cc56d11340000000005",
697
+ "high_grade": "8",
698
+ "low_grade": "6",
699
+ "name": "Clever Academy",
700
+ "nces_id": "17065379",
701
+ "phone": "1-755-019-5442",
702
+ "school_number": "214",
703
+ "sis_id": "9255",
704
+ "location": {
705
+ "address": "18828 Kutch Court",
706
+ "city": "Dessiemouth",
707
+ "state": "IA",
708
+ "zip": "37471-9969"
709
+ },
710
+ "principal": {
711
+ "name": "Colleen Gottlieb",
712
+ "email": "Eda_Barrows@mailinator.com"
713
+ },
714
+ "last_modified": "2012-06-29T19:21:50.592Z",
715
+ "id": "4fee004cca2e43cf27000001"
716
+ },
717
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000001"
718
+ },
719
+ {
720
+ "data": {
721
+ "district": "4fd43cc56d11340000000005",
722
+ "high_grade": "8",
723
+ "low_grade": "6",
724
+ "name": "Clever Preparatory",
725
+ "nces_id": "94755881",
726
+ "phone": "772-761-5171 x26385",
727
+ "school_number": "426",
728
+ "sis_id": "2559",
729
+ "location": {
730
+ "address": "42139 Fadel Mountains",
731
+ "city": "Thomasfort",
732
+ "state": "AP",
733
+ "zip": "61397-3760"
734
+ },
735
+ "principal": {
736
+ "name": "Rudolph Howe",
737
+ "email": "Nikolas@mailinator.com"
738
+ },
739
+ "last_modified": "2012-06-29T19:21:50.637Z",
740
+ "id": "4fee004cca2e43cf27000002"
741
+ },
742
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000002"
743
+ }
744
+ ],
745
+ "links": [
746
+ {
747
+ "rel": "self",
748
+ "uri": "/v1.1/schools?limit=2"
749
+ },
750
+ {
751
+ "rel": "next",
752
+ "uri": "/v1.1/schools?limit=2&page=2"
753
+ }
754
+ ]
755
+ }'
756
+
757
+ SCHOOL = '{
758
+ "data": {
759
+ "district": "4fd43cc56d11340000000005",
760
+ "high_grade": "8",
761
+ "low_grade": "6",
762
+ "name": "Clever Academy",
763
+ "nces_id": "17065379",
764
+ "phone": "1-755-019-5442",
765
+ "school_number": "214",
766
+ "sis_id": "9255",
767
+ "location": {
768
+ "address": "18828 Kutch Court",
769
+ "city": "Dessiemouth",
770
+ "state": "IA",
771
+ "zip": "37471-9969"
772
+ },
773
+ "principal": {
774
+ "name": "Colleen Gottlieb",
775
+ "email": "Eda_Barrows@mailinator.com"
776
+ },
777
+ "last_modified": "2012-06-29T19:21:50.592Z",
778
+ "id": "4fee004cca2e43cf27000001"
779
+ },
780
+ "links": [
781
+ {
782
+ "rel": "self",
783
+ "uri": "/v1.1/schools/4fd43f4a5e5e397767000005"
784
+ },
785
+ {
786
+ "rel": "district",
787
+ "uri": "/v1.1/schools/4fd43f4a5e5e397767000005/district"
788
+ },
789
+ {
790
+ "rel": "teachers",
791
+ "uri": "/v1.1/schools/4fd43f4a5e5e397767000005/teachers"
792
+ },
793
+ {
794
+ "rel": "students",
795
+ "uri": "/v1.1/schools/4fd43f4a5e5e397767000005/students"
796
+ },
797
+ {
798
+ "rel": "sections",
799
+ "uri": "/v1.1/schools/4fd43f4a5e5e397767000005/sections"
800
+ }
801
+ ]
802
+ }'
803
+
804
+ SCHOOL_TEACHERS = '{
805
+ "paging": {
806
+ "current": 1,
807
+ "total": 2,
808
+ "count": 12
809
+ },
810
+ "data": [
811
+ {
812
+ "data": {
813
+ "district": "4fd43cc56d11340000000005",
814
+ "email": "adaline_kunze@mailinator.com",
815
+ "school": "4fee004cca2e43cf27000001",
816
+ "sis_id": "7408",
817
+ "title": "Disintermediate Visionary Architectures Manager",
818
+ "name": {
819
+ "first": "Alec",
820
+ "middle": "G",
821
+ "last": "Lubowitz"
822
+ },
823
+ "last_modified": "2012-06-29T19:22:16.621Z",
824
+ "id": "4fee004dca2e43cf270007d8"
825
+ },
826
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007d8"
827
+ },
828
+ {
829
+ "data": {
830
+ "district": "4fd43cc56d11340000000005",
831
+ "email": "grant@mailinator.com",
832
+ "school": "4fee004cca2e43cf27000001",
833
+ "sis_id": "7788",
834
+ "title": "Synergize E-business Technologies Manager",
835
+ "name": {
836
+ "first": "Reta",
837
+ "middle": "O",
838
+ "last": "West"
839
+ },
840
+ "last_modified": "2012-06-29T19:22:16.696Z",
841
+ "id": "4fee004dca2e43cf270007db"
842
+ },
843
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007db"
844
+ },
845
+ {
846
+ "data": {
847
+ "district": "4fd43cc56d11340000000005",
848
+ "email": "toby_stracke@mailinator.com",
849
+ "school": "4fee004cca2e43cf27000001",
850
+ "sis_id": "2464",
851
+ "title": "E-enable Virtual Portals Manager",
852
+ "name": {
853
+ "first": "Baron",
854
+ "middle": "J",
855
+ "last": "Shields"
856
+ },
857
+ "last_modified": "2012-06-29T19:22:16.868Z",
858
+ "id": "4fee004dca2e43cf270007e2"
859
+ },
860
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007e2"
861
+ },
862
+ {
863
+ "data": {
864
+ "district": "4fd43cc56d11340000000005",
865
+ "email": "woodrow_hessel@mailinator.com",
866
+ "school": "4fee004cca2e43cf27000001",
867
+ "sis_id": "2710",
868
+ "title": "Redefine Virtual Solutions Manager",
869
+ "name": {
870
+ "first": "Curt",
871
+ "middle": "H",
872
+ "last": "Dietrich"
873
+ },
874
+ "last_modified": "2012-06-29T19:22:17.108Z",
875
+ "id": "4fee004dca2e43cf270007ec"
876
+ },
877
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007ec"
878
+ },
879
+ {
880
+ "data": {
881
+ "district": "4fd43cc56d11340000000005",
882
+ "email": "alessandra@mailinator.com",
883
+ "school": "4fee004cca2e43cf27000001",
884
+ "sis_id": "9417",
885
+ "title": "Extend Sexy Web-readiness Manager",
886
+ "name": {
887
+ "first": "Brendan",
888
+ "middle": "D",
889
+ "last": "Fay"
890
+ },
891
+ "last_modified": "2012-06-29T19:22:17.158Z",
892
+ "id": "4fee004dca2e43cf270007ee"
893
+ },
894
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007ee"
895
+ },
896
+ {
897
+ "data": {
898
+ "district": "4fd43cc56d11340000000005",
899
+ "email": "stephany@mailinator.com",
900
+ "school": "4fee004cca2e43cf27000001",
901
+ "sis_id": "2529",
902
+ "title": "Benchmark Value-added Communities Manager",
903
+ "name": {
904
+ "first": "Letitia",
905
+ "middle": "S",
906
+ "last": "Padberg"
907
+ },
908
+ "last_modified": "2012-06-29T19:22:17.278Z",
909
+ "id": "4fee004dca2e43cf270007f3"
910
+ },
911
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007f3"
912
+ },
913
+ {
914
+ "data": {
915
+ "district": "4fd43cc56d11340000000005",
916
+ "email": "gordon@mailinator.com",
917
+ "school": "4fee004cca2e43cf27000001",
918
+ "sis_id": "419",
919
+ "title": "Grow Next-generation Networks Manager",
920
+ "name": {
921
+ "first": "Samanta",
922
+ "middle": "B",
923
+ "last": "Hagenes"
924
+ },
925
+ "last_modified": "2012-06-29T19:22:17.349Z",
926
+ "id": "4fee004dca2e43cf270007f6"
927
+ },
928
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007f6"
929
+ },
930
+ {
931
+ "data": {
932
+ "district": "4fd43cc56d11340000000005",
933
+ "email": "aida@mailinator.com",
934
+ "school": "4fee004cca2e43cf27000001",
935
+ "sis_id": "7839",
936
+ "title": "Revolutionize Robust Interfaces Manager",
937
+ "name": {
938
+ "first": "Kaley",
939
+ "middle": "S",
940
+ "last": "McKenzie"
941
+ },
942
+ "last_modified": "2012-06-29T19:22:17.423Z",
943
+ "id": "4fee004dca2e43cf270007f9"
944
+ },
945
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007f9"
946
+ },
947
+ {
948
+ "data": {
949
+ "district": "4fd43cc56d11340000000005",
950
+ "email": "juston@mailinator.com",
951
+ "school": "4fee004cca2e43cf27000001",
952
+ "sis_id": "8518",
953
+ "title": "Leverage Magnetic Roi Manager",
954
+ "name": {
955
+ "first": "Chadrick",
956
+ "middle": "M",
957
+ "last": "Pfeffer"
958
+ },
959
+ "last_modified": "2012-06-29T19:22:17.446Z",
960
+ "id": "4fee004dca2e43cf270007fa"
961
+ },
962
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007fa"
963
+ },
964
+ {
965
+ "data": {
966
+ "district": "4fd43cc56d11340000000005",
967
+ "email": "aiyana.adams@mailinator.com",
968
+ "school": "4fee004cca2e43cf27000001",
969
+ "sis_id": "6173",
970
+ "title": "Transform Bleeding-edge Roi Manager",
971
+ "name": {
972
+ "first": "Dillan",
973
+ "middle": "Q",
974
+ "last": "Haag"
975
+ },
976
+ "last_modified": "2012-06-29T19:22:17.668Z",
977
+ "id": "4fee004dca2e43cf27000803"
978
+ },
979
+ "uri": "/v1.1/teachers/4fee004dca2e43cf27000803"
980
+ }
981
+ ],
982
+ "links": [
983
+ {
984
+ "rel": "self",
985
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000001/teachers?limit=10"
986
+ },
987
+ {
988
+ "rel": "next",
989
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000001/teachers?limit=10&page=2"
990
+ }
991
+ ]
992
+ }'
993
+
994
+ SCHOOL_STUDENTS = '{
995
+ "paging": {
996
+ "current": 1,
997
+ "total": 60,
998
+ "count": 239
999
+ },
1000
+ "data": [
1001
+ {
1002
+ "data": {
1003
+ "district": "4fd43cc56d11340000000005",
1004
+ "dob": "1/18/2000",
1005
+ "frl_status": "N",
1006
+ "gender": "M",
1007
+ "grade": "8",
1008
+ "hispanic_ethnicity": "N",
1009
+ "race": "Black or African American",
1010
+ "school": "4fee004cca2e43cf27000001",
1011
+ "sis_id": "2538",
1012
+ "state_id": "1673570",
1013
+ "student_number": "47484",
1014
+ "location": {
1015
+ "address": "52572 Yost Ports",
1016
+ "city": "Krystinaburgh",
1017
+ "state": "MO",
1018
+ "zip": "52063-3438",
1019
+ "lat": "-43.32432461902499",
1020
+ "lon": "35.24701637215912"
1021
+ },
1022
+ "name": {
1023
+ "first": "Jacinthe",
1024
+ "middle": "N",
1025
+ "last": "Wunsch"
1026
+ },
1027
+ "last_modified": "2012-06-29T19:21:50.881Z",
1028
+ "id": "4fee004cca2e43cf27000013"
1029
+ },
1030
+ "uri": "/v1.1/students/4fee004cca2e43cf27000013"
1031
+ },
1032
+ {
1033
+ "data": {
1034
+ "district": "4fd43cc56d11340000000005",
1035
+ "dob": "7/8/1999",
1036
+ "frl_status": "Y",
1037
+ "gender": "M",
1038
+ "grade": "7",
1039
+ "hispanic_ethnicity": "N",
1040
+ "race": "Two or More Races",
1041
+ "school": "4fee004cca2e43cf27000001",
1042
+ "sis_id": "9268",
1043
+ "state_id": "1875659",
1044
+ "student_number": "28368",
1045
+ "location": {
1046
+ "address": "9107 Kohler Island",
1047
+ "city": "East Briana",
1048
+ "state": "MS",
1049
+ "zip": "57792-3889",
1050
+ "lat": "-35.49765639938414",
1051
+ "lon": "-94.93370630778372"
1052
+ },
1053
+ "name": {
1054
+ "first": "Columbus",
1055
+ "middle": "I",
1056
+ "last": "Herman"
1057
+ },
1058
+ "last_modified": "2012-06-29T19:21:50.969Z",
1059
+ "id": "4fee004cca2e43cf27000017"
1060
+ },
1061
+ "uri": "/v1.1/students/4fee004cca2e43cf27000017"
1062
+ },
1063
+ {
1064
+ "data": {
1065
+ "district": "4fd43cc56d11340000000005",
1066
+ "dob": "10/14/2000",
1067
+ "frl_status": "N",
1068
+ "gender": "M",
1069
+ "grade": "8",
1070
+ "hispanic_ethnicity": "N",
1071
+ "race": "Caucasian",
1072
+ "school": "4fee004cca2e43cf27000001",
1073
+ "sis_id": "2534",
1074
+ "state_id": "2771181",
1075
+ "student_number": "40477",
1076
+ "location": {
1077
+ "address": "0831 Abbott Drives",
1078
+ "city": "South Courtney",
1079
+ "state": "VA",
1080
+ "zip": "93269-6992",
1081
+ "lat": "6.88929773401469",
1082
+ "lon": "149.16023835539818"
1083
+ },
1084
+ "name": {
1085
+ "first": "Jennie",
1086
+ "middle": "D",
1087
+ "last": "Kuvalis"
1088
+ },
1089
+ "last_modified": "2012-06-29T19:21:50.992Z",
1090
+ "id": "4fee004cca2e43cf27000019"
1091
+ },
1092
+ "uri": "/v1.1/students/4fee004cca2e43cf27000019"
1093
+ },
1094
+ {
1095
+ "data": {
1096
+ "district": "4fd43cc56d11340000000005",
1097
+ "dob": "1/3/1999",
1098
+ "frl_status": "N",
1099
+ "gender": "F",
1100
+ "grade": "6",
1101
+ "hispanic_ethnicity": "N",
1102
+ "race": "Hawaiian or Other Pacific Islander",
1103
+ "school": "4fee004cca2e43cf27000001",
1104
+ "sis_id": "645",
1105
+ "state_id": "3560709",
1106
+ "student_number": "48331",
1107
+ "location": {
1108
+ "address": "2783 Beahan Isle",
1109
+ "city": "East Gunnarside",
1110
+ "state": "FL",
1111
+ "zip": "77603",
1112
+ "lat": "80.54116220679134",
1113
+ "lon": "161.40669501386583"
1114
+ },
1115
+ "name": {
1116
+ "first": "Keshawn",
1117
+ "middle": "D",
1118
+ "last": "Ernser"
1119
+ },
1120
+ "last_modified": "2012-06-29T19:21:51.141Z",
1121
+ "id": "4fee004cca2e43cf27000025"
1122
+ },
1123
+ "uri": "/v1.1/students/4fee004cca2e43cf27000025"
1124
+ }
1125
+ ],
1126
+ "links": [
1127
+ {
1128
+ "rel": "self",
1129
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000001/students?limit=4"
1130
+ },
1131
+ {
1132
+ "rel": "next",
1133
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000001/students?limit=4&page=2"
1134
+ }
1135
+ ]
1136
+ }'
1137
+
1138
+ SCHOOL_SECTIONS = '{
1139
+ "paging": {
1140
+ "current": 1,
1141
+ "total": 9,
1142
+ "count": 17
1143
+ },
1144
+ "data": [
1145
+ {
1146
+ "data": {
1147
+ "district": "4fd43cc56d11340000000005",
1148
+ "grade": "6",
1149
+ "name": "Planetary Chemistry 5(B)",
1150
+ "school": "4fee004cca2e43cf27000001",
1151
+ "section_number": "85",
1152
+ "sis_id": "4917",
1153
+ "subject": "science",
1154
+ "teacher": "4fee004dca2e43cf270007f9",
1155
+ "students": [
1156
+ "4fee004cca2e43cf2700008b",
1157
+ "4fee004dca2e43cf270006f9",
1158
+ "4fee004cca2e43cf27000201",
1159
+ "4fee004dca2e43cf27000675",
1160
+ "4fee004cca2e43cf2700011f",
1161
+ "4fee004cca2e43cf2700016f",
1162
+ "4fee004dca2e43cf2700076d",
1163
+ "4fee004dca2e43cf27000777",
1164
+ "4fee004cca2e43cf270001b7",
1165
+ "4fee004cca2e43cf270002c9",
1166
+ "4fee004dca2e43cf270005a9",
1167
+ "4fee004cca2e43cf2700030d",
1168
+ "4fee004cca2e43cf2700003f",
1169
+ "4fee004dca2e43cf2700076d",
1170
+ "4fee004dca2e43cf27000769",
1171
+ "4fee004cca2e43cf2700042b",
1172
+ "4fee004dca2e43cf27000551",
1173
+ "4fee004cca2e43cf27000071",
1174
+ "4fee004dca2e43cf270005cd",
1175
+ "4fee004dca2e43cf2700045f",
1176
+ "4fee004dca2e43cf270004bf",
1177
+ "4fee004cca2e43cf27000017",
1178
+ "4fee004dca2e43cf270004f9",
1179
+ "4fee004cca2e43cf27000417",
1180
+ "4fee004cca2e43cf27000213",
1181
+ "4fee004cca2e43cf2700013b",
1182
+ "4fee004dca2e43cf27000699",
1183
+ "4fee004dca2e43cf27000787",
1184
+ "4fee004cca2e43cf27000049",
1185
+ "4fee004dca2e43cf270005e5",
1186
+ "4fee004dca2e43cf2700052d",
1187
+ "4fee004dca2e43cf27000479",
1188
+ "4fee004cca2e43cf2700010f",
1189
+ "4fee004dca2e43cf270004af",
1190
+ "4fee004cca2e43cf27000425"
1191
+ ],
1192
+ "last_modified": "2012-06-29T19:22:17.789Z",
1193
+ "id": "4fee004dca2e43cf27000808"
1194
+ },
1195
+ "uri": "/v1.1/sections/4fee004dca2e43cf27000808"
1196
+ },
1197
+ {
1198
+ "data": {
1199
+ "district": "4fd43cc56d11340000000005",
1200
+ "grade": "6",
1201
+ "name": "Earth Physics 4(B)",
1202
+ "school": "4fee004cca2e43cf27000001",
1203
+ "section_number": "15",
1204
+ "sis_id": "6323",
1205
+ "subject": "science",
1206
+ "teacher": "4fee004dca2e43cf270007d8",
1207
+ "students": [
1208
+ "4fee004cca2e43cf270003eb",
1209
+ "4fee004dca2e43cf270005ef",
1210
+ "4fee004cca2e43cf27000351",
1211
+ "4fee004dca2e43cf270005cd",
1212
+ "4fee004dca2e43cf27000487",
1213
+ "4fee004dca2e43cf270007cf",
1214
+ "4fee004cca2e43cf27000389",
1215
+ "4fee004cca2e43cf27000115",
1216
+ "4fee004cca2e43cf2700007b",
1217
+ "4fee004dca2e43cf270005eb",
1218
+ "4fee004cca2e43cf2700037f",
1219
+ "4fee004cca2e43cf270001a5",
1220
+ "4fee004dca2e43cf2700052b",
1221
+ "4fee004dca2e43cf27000665",
1222
+ "4fee004cca2e43cf270002d1",
1223
+ "4fee004cca2e43cf27000339",
1224
+ "4fee004cca2e43cf27000019",
1225
+ "4fee004cca2e43cf27000161",
1226
+ "4fee004dca2e43cf27000491",
1227
+ "4fee004dca2e43cf270004d5",
1228
+ "4fee004cca2e43cf2700042b",
1229
+ "4fee004cca2e43cf27000025",
1230
+ "4fee004dca2e43cf2700056b",
1231
+ "4fee004dca2e43cf270005cd",
1232
+ "4fee004cca2e43cf270003b7",
1233
+ "4fee004dca2e43cf270006e5",
1234
+ "4fee004cca2e43cf27000273",
1235
+ "4fee004dca2e43cf270006f9",
1236
+ "4fee004dca2e43cf270007d1",
1237
+ "4fee004cca2e43cf2700022f",
1238
+ "4fee004cca2e43cf2700025f",
1239
+ "4fee004cca2e43cf270002eb",
1240
+ "4fee004cca2e43cf27000281",
1241
+ "4fee004cca2e43cf27000289",
1242
+ "4fee004cca2e43cf27000017",
1243
+ "4fee004dca2e43cf27000647"
1244
+ ],
1245
+ "last_modified": "2012-06-29T19:22:17.935Z",
1246
+ "id": "4fee004dca2e43cf2700080e"
1247
+ },
1248
+ "uri": "/v1.1/sections/4fee004dca2e43cf2700080e"
1249
+ }
1250
+ ],
1251
+ "links": [
1252
+ {
1253
+ "rel": "self",
1254
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000001/sections?limit=2"
1255
+ },
1256
+ {
1257
+ "rel": "next",
1258
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000001/sections?limit=2&page=2"
1259
+ }
1260
+ ]
1261
+ }'
1262
+
1263
+ SCHOOL_DISTRICT = '{
1264
+ "data": {
1265
+ "name": "Demo District",
1266
+ "id": "4fd43cc56d11340000000005"
1267
+ },
1268
+ "links": [
1269
+ {
1270
+ "rel": "self",
1271
+ "uri": "/v1.1/districts/4fd43cc56d11340000000005"
1272
+ }
1273
+ ]
1274
+ }'
1275
+
1276
+ TEACHERS = '{
1277
+ "paging": {
1278
+ "current": 1,
1279
+ "total": 13,
1280
+ "count": 50
1281
+ },
1282
+ "data": [
1283
+ {
1284
+ "data": {
1285
+ "district": "4fd43cc56d11340000000005",
1286
+ "email": "ashlee@mailinator.com",
1287
+ "school": "4fee004cca2e43cf27000003",
1288
+ "sis_id": "1720",
1289
+ "title": "Orchestrate Visionary Technologies Manager",
1290
+ "name": {
1291
+ "first": "Nadia",
1292
+ "middle": "H",
1293
+ "last": "Mitchell"
1294
+ },
1295
+ "last_modified": "2012-06-29T19:22:16.552Z",
1296
+ "id": "4fee004dca2e43cf270007d5"
1297
+ },
1298
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007d5"
1299
+ },
1300
+ {
1301
+ "data": {
1302
+ "district": "4fd43cc56d11340000000005",
1303
+ "email": "rowland@mailinator.com",
1304
+ "school": "4fee004cca2e43cf27000002",
1305
+ "sis_id": "6636",
1306
+ "title": "Matrix B2c Markets Manager",
1307
+ "name": {
1308
+ "first": "Eugenia",
1309
+ "middle": "L",
1310
+ "last": "Schuppe"
1311
+ },
1312
+ "last_modified": "2012-06-29T19:22:16.574Z",
1313
+ "id": "4fee004dca2e43cf270007d6"
1314
+ },
1315
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007d6"
1316
+ },
1317
+ {
1318
+ "data": {
1319
+ "district": "4fd43cc56d11340000000005",
1320
+ "email": "wilfrid.bogan@mailinator.com",
1321
+ "school": "4fee004cca2e43cf27000004",
1322
+ "sis_id": "4572",
1323
+ "title": "Generate Cross-platform Models Manager",
1324
+ "name": {
1325
+ "first": "Anibal",
1326
+ "middle": "N",
1327
+ "last": "Will"
1328
+ },
1329
+ "last_modified": "2012-06-29T19:22:16.597Z",
1330
+ "id": "4fee004dca2e43cf270007d7"
1331
+ },
1332
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007d7"
1333
+ },
1334
+ {
1335
+ "data": {
1336
+ "district": "4fd43cc56d11340000000005",
1337
+ "email": "adaline_kunze@mailinator.com",
1338
+ "school": "4fee004cca2e43cf27000001",
1339
+ "sis_id": "7408",
1340
+ "title": "Disintermediate Visionary Architectures Manager",
1341
+ "name": {
1342
+ "first": "Alec",
1343
+ "middle": "G",
1344
+ "last": "Lubowitz"
1345
+ },
1346
+ "last_modified": "2012-06-29T19:22:16.621Z",
1347
+ "id": "4fee004dca2e43cf270007d8"
1348
+ },
1349
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007d8"
1350
+ }
1351
+ ],
1352
+ "links": [
1353
+ {
1354
+ "rel": "self",
1355
+ "uri": "/v1.1/teachers?limit=4"
1356
+ },
1357
+ {
1358
+ "rel": "next",
1359
+ "uri": "/v1.1/teachers?limit=4&page=2"
1360
+ }
1361
+ ]
1362
+ }'
1363
+
1364
+ TEACHER = '{
1365
+ "data": {
1366
+ "district": "4fd43cc56d11340000000005",
1367
+ "email": "ashlee@mailinator.com",
1368
+ "school": "4fee004cca2e43cf27000003",
1369
+ "sis_id": "1720",
1370
+ "title": "Orchestrate Visionary Technologies Manager",
1371
+ "name": {
1372
+ "first": "Nadia",
1373
+ "middle": "H",
1374
+ "last": "Mitchell"
1375
+ },
1376
+ "last_modified": "2012-06-29T19:22:16.552Z",
1377
+ "id": "4fee004dca2e43cf270007d5"
1378
+ },
1379
+ "links": [
1380
+ {
1381
+ "rel": "self",
1382
+ "uri": "/v1.1/teachers/4ffefa20f608049536000b6b"
1383
+ },
1384
+ {
1385
+ "rel": "district",
1386
+ "uri": "/v1.1/teachers/4ffefa20f608049536000b6b/district"
1387
+ },
1388
+ {
1389
+ "rel": "school",
1390
+ "uri": "/v1.1/teachers/4ffefa20f608049536000b6b/school"
1391
+ },
1392
+ {
1393
+ "rel": "students",
1394
+ "uri": "/v1.1/teachers/4ffefa20f608049536000b6b/students"
1395
+ },
1396
+ {
1397
+ "rel": "sections",
1398
+ "uri": "/v1.1/teachers/4ffefa20f608049536000b6b/sections"
1399
+ },
1400
+ {
1401
+ "rel": "grade_levels",
1402
+ "uri": "/v1.1/teachers/4ffefa20f608049536000b6b/grade_levels"
1403
+ }
1404
+ ]
1405
+ }'
1406
+
1407
+ TEACHER_SECTIONS = '{
1408
+ "paging": {
1409
+ "current": 1,
1410
+ "total": 2,
1411
+ "count": 3
1412
+ },
1413
+ "data": [
1414
+ {
1415
+ "data": {
1416
+ "district": "4fd43cc56d11340000000005",
1417
+ "grade": "7",
1418
+ "name": "Earth Arithmetic 4(B)",
1419
+ "school": "4fee004cca2e43cf27000004",
1420
+ "section_number": "64",
1421
+ "sis_id": "1776",
1422
+ "subject": "math",
1423
+ "teacher": "4fee004dca2e43cf270007fd",
1424
+ "students": [
1425
+ "4fee004dca2e43cf2700047b",
1426
+ "4fee004cca2e43cf27000211",
1427
+ "4fee004cca2e43cf27000271",
1428
+ "4fee004dca2e43cf27000677",
1429
+ "4fee004dca2e43cf2700048d",
1430
+ "4fee004cca2e43cf27000061",
1431
+ "4fee004dca2e43cf270004a9",
1432
+ "4fee004cca2e43cf27000327",
1433
+ "4fee004cca2e43cf2700031d",
1434
+ "4fee004dca2e43cf270004ef",
1435
+ "4fee004dca2e43cf27000601",
1436
+ "4fee004dca2e43cf27000565",
1437
+ "4fee004cca2e43cf2700021b",
1438
+ "4fee004cca2e43cf27000189",
1439
+ "4fee004cca2e43cf27000435",
1440
+ "4fee004cca2e43cf27000085",
1441
+ "4fee004dca2e43cf270004ed",
1442
+ "4fee004dca2e43cf270007cb",
1443
+ "4fee004cca2e43cf270003d1",
1444
+ "4fee004cca2e43cf27000297",
1445
+ "4fee004cca2e43cf27000241",
1446
+ "4fee004cca2e43cf2700009f",
1447
+ "4fee004dca2e43cf270007a5"
1448
+ ],
1449
+ "last_modified": "2012-06-29T19:22:18.231Z",
1450
+ "id": "4fee004dca2e43cf2700081a"
1451
+ },
1452
+ "uri": "/v1.1/sections/4fee004dca2e43cf2700081a"
1453
+ },
1454
+ {
1455
+ "data": {
1456
+ "district": "4fd43cc56d11340000000005",
1457
+ "grade": "8",
1458
+ "name": "Earth Arithmetic 3(B)",
1459
+ "school": "4fee004cca2e43cf27000004",
1460
+ "section_number": "60",
1461
+ "sis_id": "3095",
1462
+ "subject": "math",
1463
+ "teacher": "4fee004dca2e43cf270007fd",
1464
+ "students": [
1465
+ "4fee004cca2e43cf27000241",
1466
+ "4fee004cca2e43cf27000379",
1467
+ "4fee004dca2e43cf2700071b",
1468
+ "4fee004cca2e43cf27000327",
1469
+ "4fee004cca2e43cf2700011b",
1470
+ "4fee004cca2e43cf2700023f",
1471
+ "4fee004dca2e43cf270004db",
1472
+ "4fee004dca2e43cf2700049b",
1473
+ "4fee004dca2e43cf270005c1",
1474
+ "4fee004cca2e43cf27000211",
1475
+ "4fee004dca2e43cf270005ad",
1476
+ "4fee004cca2e43cf2700030b",
1477
+ "4fee004cca2e43cf27000069",
1478
+ "4fee004dca2e43cf270005cb",
1479
+ "4fee004dca2e43cf27000441",
1480
+ "4fee004cca2e43cf2700019f",
1481
+ "4fee004cca2e43cf270001f7",
1482
+ "4fee004cca2e43cf270001cb",
1483
+ "4fee004dca2e43cf270005d3",
1484
+ "4fee004dca2e43cf2700078b",
1485
+ "4fee004cca2e43cf2700038b",
1486
+ "4fee004cca2e43cf27000065",
1487
+ "4fee004dca2e43cf270004a7",
1488
+ "4fee004dca2e43cf27000511",
1489
+ "4fee004cca2e43cf2700024d",
1490
+ "4fee004cca2e43cf270001e5",
1491
+ "4fee004dca2e43cf27000677",
1492
+ "4fee004dca2e43cf2700052f",
1493
+ "4fee004cca2e43cf270000a3",
1494
+ "4fee004cca2e43cf270000b7",
1495
+ "4fee004dca2e43cf2700069f",
1496
+ "4fee004cca2e43cf2700004b",
1497
+ "4fee004cca2e43cf2700037d",
1498
+ "4fee004cca2e43cf270001f7",
1499
+ "4fee004dca2e43cf27000713",
1500
+ "4fee004dca2e43cf27000483"
1501
+ ],
1502
+ "last_modified": "2012-06-29T19:22:18.922Z",
1503
+ "id": "4fee004dca2e43cf27000835"
1504
+ },
1505
+ "uri": "/v1.1/sections/4fee004dca2e43cf27000835"
1506
+ }
1507
+ ],
1508
+ "links": [
1509
+ {
1510
+ "rel": "self",
1511
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007fd/sections?limit=2"
1512
+ },
1513
+ {
1514
+ "rel": "next",
1515
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007fd/sections?limit=2&page=2"
1516
+ }
1517
+ ]
1518
+ }'
1519
+
1520
+ TEACHER_SCHOOL = '{
1521
+ "data": {
1522
+ "district": "4fd43cc56d11340000000005",
1523
+ "high_grade": "8",
1524
+ "low_grade": "6",
1525
+ "name": "Clever High School",
1526
+ "nces_id": "44270647",
1527
+ "phone": "1-895-295-3507",
1528
+ "school_number": "481",
1529
+ "sis_id": "4083",
1530
+ "location": {
1531
+ "address": "9538 Leffler Forks",
1532
+ "city": "Gwendolynville",
1533
+ "state": "NH",
1534
+ "zip": "58530-7427"
1535
+ },
1536
+ "principal": {
1537
+ "name": "Krystal Kiehn",
1538
+ "email": "Domingo_Williamson@mailinator.com"
1539
+ },
1540
+ "last_modified": "2012-06-29T19:21:50.661Z",
1541
+ "id": "4fee004cca2e43cf27000003"
1542
+ },
1543
+ "links": [
1544
+ {
1545
+ "rel": "self",
1546
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000003"
1547
+ }
1548
+ ]
1549
+ }'
1550
+
1551
+ TEACHER_DISTRICT = '{
1552
+ "data": {
1553
+ "name": "Demo District",
1554
+ "id": "4fd43cc56d11340000000005"
1555
+ },
1556
+ "links": [
1557
+ {
1558
+ "rel": "self",
1559
+ "uri": "/v1.1/districts/4fd43cc56d11340000000005"
1560
+ }
1561
+ ]
1562
+ }'
1563
+
1564
+ TEACHER_STUDENTS = '{
1565
+ "paging": {
1566
+ "current": 1,
1567
+ "total": 17,
1568
+ "count": 81
1569
+ },
1570
+ "data": [
1571
+ {
1572
+ "data": {
1573
+ "district": "4fd43cc56d11340000000005",
1574
+ "dob": "10/18/1998",
1575
+ "frl_status": "N",
1576
+ "gender": "F",
1577
+ "grade": "8",
1578
+ "hispanic_ethnicity": "N",
1579
+ "race": "Caucasian",
1580
+ "school": "4fee004cca2e43cf27000004",
1581
+ "sis_id": "7921",
1582
+ "state_id": "3432723",
1583
+ "student_number": "49789",
1584
+ "location": {
1585
+ "address": "9629 Champlin Loop",
1586
+ "city": "New Bradley",
1587
+ "state": "MS",
1588
+ "zip": "72776",
1589
+ "lat": "-62.99142876639962",
1590
+ "lon": "93.68024323135614"
1591
+ },
1592
+ "name": {
1593
+ "first": "Horace",
1594
+ "middle": "P",
1595
+ "last": "Hermann"
1596
+ },
1597
+ "last_modified": "2012-06-29T19:21:50.809Z",
1598
+ "id": "4fee004cca2e43cf2700000d"
1599
+ },
1600
+ "uri": "/v1.1/students/4fee004cca2e43cf2700000d"
1601
+ },
1602
+ {
1603
+ "data": {
1604
+ "district": "4fd43cc56d11340000000005",
1605
+ "dob": "9/28/2000",
1606
+ "frl_status": "N",
1607
+ "gender": "M",
1608
+ "grade": "7",
1609
+ "hispanic_ethnicity": "N",
1610
+ "race": "American Indian",
1611
+ "school": "4fee004cca2e43cf27000004",
1612
+ "sis_id": "1122",
1613
+ "state_id": "2139858",
1614
+ "student_number": "22149",
1615
+ "location": {
1616
+ "address": "3613 Heller Forges",
1617
+ "city": "North Sonia",
1618
+ "state": "OR",
1619
+ "zip": "97420",
1620
+ "lat": "70.63689352478832",
1621
+ "lon": "-97.28568367660046"
1622
+ },
1623
+ "name": {
1624
+ "first": "Matilda",
1625
+ "middle": "E",
1626
+ "last": "Bednar"
1627
+ },
1628
+ "last_modified": "2012-06-29T19:21:51.607Z",
1629
+ "id": "4fee004cca2e43cf2700004b"
1630
+ },
1631
+ "uri": "/v1.1/students/4fee004cca2e43cf2700004b"
1632
+ },
1633
+ {
1634
+ "data": {
1635
+ "district": "4fd43cc56d11340000000005",
1636
+ "dob": "8/8/2000",
1637
+ "frl_status": "Y",
1638
+ "gender": "M",
1639
+ "grade": "7",
1640
+ "hispanic_ethnicity": "N",
1641
+ "race": "Asian",
1642
+ "school": "4fee004cca2e43cf27000004",
1643
+ "sis_id": "860",
1644
+ "state_id": "3000099",
1645
+ "student_number": "25151",
1646
+ "location": {
1647
+ "address": "0639 Kilback Well",
1648
+ "city": "West Alvina",
1649
+ "state": "CT",
1650
+ "zip": "77822",
1651
+ "lat": "21.767521952278912",
1652
+ "lon": "-82.98645811155438"
1653
+ },
1654
+ "name": {
1655
+ "first": "Wanda",
1656
+ "middle": "C",
1657
+ "last": "Cruickshank"
1658
+ },
1659
+ "last_modified": "2012-06-29T19:21:51.633Z",
1660
+ "id": "4fee004cca2e43cf2700004d"
1661
+ },
1662
+ "uri": "/v1.1/students/4fee004cca2e43cf2700004d"
1663
+ },
1664
+ {
1665
+ "data": {
1666
+ "district": "4fd43cc56d11340000000005",
1667
+ "dob": "7/27/1999",
1668
+ "frl_status": "N",
1669
+ "gender": "F",
1670
+ "grade": "8",
1671
+ "hispanic_ethnicity": "Y",
1672
+ "race": "Caucasian",
1673
+ "school": "4fee004cca2e43cf27000004",
1674
+ "sis_id": "5300",
1675
+ "state_id": "4116063",
1676
+ "student_number": "35504",
1677
+ "location": {
1678
+ "address": "9563 Rau Causeway",
1679
+ "city": "South Lilliefurt",
1680
+ "state": "PW",
1681
+ "zip": "18942",
1682
+ "lat": "-83.75890916213393",
1683
+ "lon": "34.091629944741726"
1684
+ },
1685
+ "name": {
1686
+ "first": "Brycen",
1687
+ "middle": "Q",
1688
+ "last": "Treutel"
1689
+ },
1690
+ "last_modified": "2012-06-29T19:21:51.887Z",
1691
+ "id": "4fee004cca2e43cf27000061"
1692
+ },
1693
+ "uri": "/v1.1/students/4fee004cca2e43cf27000061"
1694
+ },
1695
+ {
1696
+ "data": {
1697
+ "district": "4fd43cc56d11340000000005",
1698
+ "dob": "5/4/1998",
1699
+ "frl_status": "N",
1700
+ "gender": "F",
1701
+ "grade": "8",
1702
+ "hispanic_ethnicity": "N",
1703
+ "race": "Asian",
1704
+ "school": "4fee004cca2e43cf27000004",
1705
+ "sis_id": "8407",
1706
+ "state_id": "3146996",
1707
+ "student_number": "28368",
1708
+ "location": {
1709
+ "address": "4036 Kub Summit",
1710
+ "city": "New Constantin",
1711
+ "state": "MD",
1712
+ "zip": "61363",
1713
+ "lat": "-80.20724730100483",
1714
+ "lon": "-135.19483733922243"
1715
+ },
1716
+ "name": {
1717
+ "first": "Roberto",
1718
+ "last": "Garcia",
1719
+ "middle": "Y"
1720
+ },
1721
+ "last_modified": "2012-06-29T19:21:51.935Z",
1722
+ "id": "4fee004cca2e43cf27000065"
1723
+ },
1724
+ "uri": "/v1.1/students/4fee004cca2e43cf27000065"
1725
+ }
1726
+ ],
1727
+ "links": [
1728
+ {
1729
+ "rel": "self",
1730
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007fd/students?limit=5"
1731
+ },
1732
+ {
1733
+ "rel": "next",
1734
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007fd/students?limit=5&page=2"
1735
+ }
1736
+ ]
1737
+ }'
1738
+
1739
+ TEACHER_GRADE_LEVELS = '{
1740
+ "data": [
1741
+ "6",
1742
+ "7",
1743
+ "8"
1744
+ ],
1745
+ "links": [
1746
+ {
1747
+ "rel": "self",
1748
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007fd/grade_levels"
1749
+ }
1750
+ ]
1751
+ }'
1752
+
1753
+ STUDENTS = '{
1754
+ "paging": {
1755
+ "current": 1,
1756
+ "total": 200,
1757
+ "count": 1000
1758
+ },
1759
+ "data": [
1760
+ {
1761
+ "data": {
1762
+ "district": "4fd43cc56d11340000000005",
1763
+ "dob": "12/12/1998",
1764
+ "frl_status": "Y",
1765
+ "gender": "M",
1766
+ "grade": "7",
1767
+ "hispanic_ethnicity": "N",
1768
+ "race": "Asian",
1769
+ "school": "4fee004cca2e43cf27000003",
1770
+ "sis_id": "1783",
1771
+ "state_id": "2237504",
1772
+ "student_number": "24772",
1773
+ "location": {
1774
+ "address": "9272 Ratke Haven",
1775
+ "city": "North Maurinetown",
1776
+ "state": "AP",
1777
+ "zip": "22505-3577",
1778
+ "lat": "-21.901449509896338",
1779
+ "lon": "114.23126022331417"
1780
+ },
1781
+ "name": {
1782
+ "first": "Constance",
1783
+ "middle": "",
1784
+ "last": "Roob"
1785
+ },
1786
+ "last_modified": "2012-06-29T19:21:50.709Z",
1787
+ "id": "4fee004cca2e43cf27000005"
1788
+ },
1789
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005"
1790
+ },
1791
+ {
1792
+ "data": {
1793
+ "district": "4fd43cc56d11340000000005",
1794
+ "dob": "1/18/2000",
1795
+ "frl_status": "Y",
1796
+ "gender": "M",
1797
+ "grade": "8",
1798
+ "hispanic_ethnicity": "N",
1799
+ "race": "Two or More Races",
1800
+ "school": "4fee004cca2e43cf27000002",
1801
+ "sis_id": "2113",
1802
+ "state_id": "4512383",
1803
+ "student_number": "34989",
1804
+ "location": {
1805
+ "address": "18358 Farrell Corners",
1806
+ "city": "West Mario",
1807
+ "state": "AL",
1808
+ "zip": "42169",
1809
+ "lat": "20.2340585924685",
1810
+ "lon": "179.6191607695073"
1811
+ },
1812
+ "name": {
1813
+ "first": "Roxane",
1814
+ "middle": "M",
1815
+ "last": "Weissnat"
1816
+ },
1817
+ "last_modified": "2012-06-29T19:21:50.736Z",
1818
+ "id": "4fee004cca2e43cf27000007"
1819
+ },
1820
+ "uri": "/v1.1/students/4fee004cca2e43cf27000007"
1821
+ },
1822
+ {
1823
+ "data": {
1824
+ "district": "4fd43cc56d11340000000005",
1825
+ "dob": "10/17/1998",
1826
+ "frl_status": "Y",
1827
+ "gender": "F",
1828
+ "grade": "6",
1829
+ "hispanic_ethnicity": "N",
1830
+ "race": "Caucasian",
1831
+ "school": "4fee004cca2e43cf27000003",
1832
+ "sis_id": "1586",
1833
+ "state_id": "2387048",
1834
+ "student_number": "48387",
1835
+ "location": {
1836
+ "address": "85702 Cartwright Knoll",
1837
+ "city": "Port Kasandraport",
1838
+ "state": "ME",
1839
+ "zip": "19541-8961",
1840
+ "lat": "-19.12011313252151",
1841
+ "lon": "-77.21223609521985"
1842
+ },
1843
+ "name": {
1844
+ "first": "Lola",
1845
+ "middle": "S",
1846
+ "last": "Tremblay"
1847
+ },
1848
+ "last_modified": "2012-06-29T19:21:50.760Z",
1849
+ "id": "4fee004cca2e43cf27000009"
1850
+ },
1851
+ "uri": "/v1.1/students/4fee004cca2e43cf27000009"
1852
+ },
1853
+ {
1854
+ "data": {
1855
+ "district": "4fd43cc56d11340000000005",
1856
+ "dob": "4/5/1998",
1857
+ "frl_status": "Y",
1858
+ "gender": "F",
1859
+ "grade": "7",
1860
+ "hispanic_ethnicity": "N",
1861
+ "race": "Caucasian",
1862
+ "school": "4fee004cca2e43cf27000003",
1863
+ "sis_id": "4875",
1864
+ "state_id": "3905945",
1865
+ "student_number": "15593",
1866
+ "location": {
1867
+ "address": "13961 Lueilwitz Cliff",
1868
+ "city": "Deondreburgh",
1869
+ "state": "MN",
1870
+ "zip": "89575-9808",
1871
+ "lat": "14.23999706748873",
1872
+ "lon": "128.96796497516334"
1873
+ },
1874
+ "name": {
1875
+ "first": "Korey",
1876
+ "middle": "R",
1877
+ "last": "Orn"
1878
+ },
1879
+ "last_modified": "2012-06-29T19:21:50.785Z",
1880
+ "id": "4fee004cca2e43cf2700000b"
1881
+ },
1882
+ "uri": "/v1.1/students/4fee004cca2e43cf2700000b"
1883
+ },
1884
+ {
1885
+ "data": {
1886
+ "district": "4fd43cc56d11340000000005",
1887
+ "dob": "10/18/1998",
1888
+ "frl_status": "N",
1889
+ "gender": "F",
1890
+ "grade": "8",
1891
+ "hispanic_ethnicity": "N",
1892
+ "race": "Caucasian",
1893
+ "school": "4fee004cca2e43cf27000004",
1894
+ "sis_id": "7921",
1895
+ "state_id": "3432723",
1896
+ "student_number": "49789",
1897
+ "location": {
1898
+ "address": "9629 Champlin Loop",
1899
+ "city": "New Bradley",
1900
+ "state": "MS",
1901
+ "zip": "72776",
1902
+ "lat": "-62.99142876639962",
1903
+ "lon": "93.68024323135614"
1904
+ },
1905
+ "name": {
1906
+ "first": "Horace",
1907
+ "middle": "P",
1908
+ "last": "Hermann"
1909
+ },
1910
+ "last_modified": "2012-06-29T19:21:50.809Z",
1911
+ "id": "4fee004cca2e43cf2700000d"
1912
+ },
1913
+ "uri": "/v1.1/students/4fee004cca2e43cf2700000d"
1914
+ }
1915
+ ],
1916
+ "links": [
1917
+ {
1918
+ "rel": "self",
1919
+ "uri": "/v1.1/students?limit=5"
1920
+ },
1921
+ {
1922
+ "rel": "next",
1923
+ "uri": "/v1.1/students?limit=5&page=2"
1924
+ }
1925
+ ]
1926
+ }'
1927
+
1928
+ STUDENT = '{
1929
+ "data": {
1930
+ "district": "4fd43cc56d11340000000005",
1931
+ "dob": "12/12/1998",
1932
+ "frl_status": "Y",
1933
+ "gender": "M",
1934
+ "grade": "7",
1935
+ "hispanic_ethnicity": "N",
1936
+ "race": "Asian",
1937
+ "school": "4fee004cca2e43cf27000003",
1938
+ "sis_id": "1783",
1939
+ "state_id": "2237504",
1940
+ "student_number": "24772",
1941
+ "location": {
1942
+ "address": "9272 Ratke Haven",
1943
+ "city": "North Maurinetown",
1944
+ "state": "AP",
1945
+ "zip": "22505-3577",
1946
+ "lat": "-21.901449509896338",
1947
+ "lon": "114.23126022331417"
1948
+ },
1949
+ "name": {
1950
+ "first": "Constance",
1951
+ "middle": "",
1952
+ "last": "Roob"
1953
+ },
1954
+ "last_modified": "2012-06-29T19:21:50.709Z",
1955
+ "id": "4fee004cca2e43cf27000005"
1956
+ },
1957
+ "links": [
1958
+ {
1959
+ "rel": "self",
1960
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005"
1961
+ },
1962
+ {
1963
+ "rel": "district",
1964
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005/district"
1965
+ },
1966
+ {
1967
+ "rel": "sections",
1968
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005/sections"
1969
+ },
1970
+ {
1971
+ "rel": "school",
1972
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005/school"
1973
+ },
1974
+ {
1975
+ "rel": "teachers",
1976
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005/teachers"
1977
+ },
1978
+ {
1979
+ "rel": "contacts",
1980
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005/contacts"
1981
+ },
1982
+ {
1983
+ "rel": "photo",
1984
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005/photo"
1985
+ }
1986
+ ]
1987
+ }'
1988
+
1989
+ STUDENT_SECTIONS = '{
1990
+ "paging": {
1991
+ "current": 1,
1992
+ "total": 2,
1993
+ "count": 4
1994
+ },
1995
+ "data": [
1996
+ {
1997
+ "data": {
1998
+ "district": "4fd43cc56d11340000000005",
1999
+ "grade": "7",
2000
+ "name": "Planetary Chemistry 1(B)",
2001
+ "school": "4fee004cca2e43cf27000003",
2002
+ "section_number": "83",
2003
+ "sis_id": "9717",
2004
+ "subject": "science",
2005
+ "teacher": "4fee004dca2e43cf270007d9",
2006
+ "students": [
2007
+ "4fee004cca2e43cf27000121",
2008
+ "4fee004cca2e43cf2700033f",
2009
+ "4fee004dca2e43cf270006ef",
2010
+ "4fee004cca2e43cf270001f5",
2011
+ "4fee004dca2e43cf270007a1",
2012
+ "4fee004cca2e43cf27000107",
2013
+ "4fee004dca2e43cf27000683",
2014
+ "4fee004dca2e43cf270004a1",
2015
+ "4fee004cca2e43cf270000b9",
2016
+ "4fee004cca2e43cf27000079",
2017
+ "4fee004cca2e43cf27000329",
2018
+ "4fee004dca2e43cf27000467",
2019
+ "4fee004cca2e43cf27000005",
2020
+ "4fee004dca2e43cf27000789",
2021
+ "4fee004cca2e43cf270002a5",
2022
+ "4fee004dca2e43cf27000499",
2023
+ "4fee004cca2e43cf27000439",
2024
+ "4fee004cca2e43cf2700016d",
2025
+ "4fee004dca2e43cf2700055f",
2026
+ "4fee004dca2e43cf270005d9",
2027
+ "4fee004cca2e43cf27000107",
2028
+ "4fee004dca2e43cf2700062b",
2029
+ "4fee004dca2e43cf270007c5",
2030
+ "4fee004dca2e43cf270007ad",
2031
+ "4fee004dca2e43cf27000473",
2032
+ "4fee004cca2e43cf27000401"
2033
+ ],
2034
+ "last_modified": "2012-06-29T19:22:18.179Z",
2035
+ "id": "4fee004dca2e43cf27000818"
2036
+ },
2037
+ "uri": "/v1.1/sections/4fee004dca2e43cf27000818"
2038
+ },
2039
+ {
2040
+ "data": {
2041
+ "district": "4fd43cc56d11340000000005",
2042
+ "grade": "8",
2043
+ "name": "Earth Physics 5(A)",
2044
+ "school": "4fee004cca2e43cf27000003",
2045
+ "section_number": "90",
2046
+ "sis_id": "3899",
2047
+ "subject": "science",
2048
+ "teacher": "4fee004dca2e43cf270007f2",
2049
+ "students": [
2050
+ "4fee004cca2e43cf270003db",
2051
+ "4fee004cca2e43cf27000291",
2052
+ "4fee004cca2e43cf270001c9",
2053
+ "4fee004cca2e43cf27000143",
2054
+ "4fee004dca2e43cf27000709",
2055
+ "4fee004cca2e43cf2700014f",
2056
+ "4fee004cca2e43cf27000439",
2057
+ "4fee004dca2e43cf2700072d",
2058
+ "4fee004dca2e43cf27000581",
2059
+ "4fee004cca2e43cf27000421",
2060
+ "4fee004dca2e43cf270004d9",
2061
+ "4fee004dca2e43cf270006b9",
2062
+ "4fee004cca2e43cf27000005",
2063
+ "4fee004dca2e43cf270005c3",
2064
+ "4fee004cca2e43cf27000267",
2065
+ "4fee004dca2e43cf27000631",
2066
+ "4fee004cca2e43cf27000191",
2067
+ "4fee004dca2e43cf270004a1",
2068
+ "4fee004cca2e43cf270000e5",
2069
+ "4fee004cca2e43cf2700027b",
2070
+ "4fee004dca2e43cf27000709",
2071
+ "4fee004dca2e43cf270004e5",
2072
+ "4fee004cca2e43cf270002b3",
2073
+ "4fee004dca2e43cf27000563",
2074
+ "4fee004cca2e43cf2700007d",
2075
+ "4fee004cca2e43cf27000353"
2076
+ ],
2077
+ "last_modified": "2012-06-29T19:22:18.329Z",
2078
+ "id": "4fee004dca2e43cf2700081e"
2079
+ },
2080
+ "uri": "/v1.1/sections/4fee004dca2e43cf2700081e"
2081
+ }
2082
+ ],
2083
+ "links": [
2084
+ {
2085
+ "rel": "self",
2086
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005/sections?limit=2"
2087
+ },
2088
+ {
2089
+ "rel": "next",
2090
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005/sections?limit=2&page=2"
2091
+ }
2092
+ ]
2093
+ }'
2094
+
2095
+ STUDENT_SCHOOL = '{
2096
+ "data": {
2097
+ "district": "4fd43cc56d11340000000005",
2098
+ "high_grade": "8",
2099
+ "low_grade": "6",
2100
+ "name": "Clever High School",
2101
+ "nces_id": "44270647",
2102
+ "phone": "1-895-295-3507",
2103
+ "school_number": "481",
2104
+ "sis_id": "4083",
2105
+ "location": {
2106
+ "address": "9538 Leffler Forks",
2107
+ "city": "Gwendolynville",
2108
+ "state": "NH",
2109
+ "zip": "58530-7427"
2110
+ },
2111
+ "principal": {
2112
+ "name": "Krystal Kiehn",
2113
+ "email": "Domingo_Williamson@mailinator.com"
2114
+ },
2115
+ "last_modified": "2012-06-29T19:21:50.661Z",
2116
+ "id": "4fee004cca2e43cf27000003"
2117
+ },
2118
+ "links": [
2119
+ {
2120
+ "rel": "self",
2121
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000003"
2122
+ }
2123
+ ]
2124
+ }'
2125
+
2126
+ STUDENT_DISTRICT = '{
2127
+ "data": {
2128
+ "name": "Demo District",
2129
+ "id": "4fd43cc56d11340000000005"
2130
+ },
2131
+ "links": [
2132
+ {
2133
+ "rel": "self",
2134
+ "uri": "/v1.1/districts/4fd43cc56d11340000000005"
2135
+ }
2136
+ ]
2137
+ }'
2138
+
2139
+ STUDENT_TEACHERS = '{
2140
+ "paging": {
2141
+ "current": 1,
2142
+ "total": 2,
2143
+ "count": 4
2144
+ },
2145
+ "data": [
2146
+ {
2147
+ "data": {
2148
+ "district": "4fd43cc56d11340000000005",
2149
+ "email": "lillian@mailinator.com",
2150
+ "school": "4fee004cca2e43cf27000003",
2151
+ "sis_id": "5320",
2152
+ "title": "Harness Ubiquitous Convergence Manager",
2153
+ "name": {
2154
+ "first": "Bridget",
2155
+ "middle": "B",
2156
+ "last": "Kulas"
2157
+ },
2158
+ "last_modified": "2012-06-29T19:22:16.645Z",
2159
+ "id": "4fee004dca2e43cf270007d9"
2160
+ },
2161
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007d9"
2162
+ },
2163
+ {
2164
+ "data": {
2165
+ "district": "4fd43cc56d11340000000005",
2166
+ "email": "charlie.jacobi@mailinator.com",
2167
+ "school": "4fee004cca2e43cf27000003",
2168
+ "sis_id": "7934",
2169
+ "title": "Iterate Wireless Users Manager",
2170
+ "name": {
2171
+ "first": "Noah",
2172
+ "middle": "I",
2173
+ "last": "Schimmel"
2174
+ },
2175
+ "last_modified": "2012-06-29T19:22:16.893Z",
2176
+ "id": "4fee004dca2e43cf270007e3"
2177
+ },
2178
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007e3"
2179
+ }
2180
+ ],
2181
+ "links": [
2182
+ {
2183
+ "rel": "self",
2184
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005/teachers?limit=2"
2185
+ },
2186
+ {
2187
+ "rel": "next",
2188
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005/teachers?limit=2&page=2"
2189
+ }
2190
+ ]
2191
+ }'
2192
+
2193
+ STUDENT_CONTACTS = '{
2194
+ "data": [
2195
+ {
2196
+ "email": "Samanta.Schaefer@mailinator.com",
2197
+ "name": "Issac Roob",
2198
+ "phone": "597.747.8259",
2199
+ "phone_type": "home",
2200
+ "student": "4fee004cca2e43cf27000005",
2201
+ "type": "guardian",
2202
+ "id": "4fee004dca2e43cf27000931"
2203
+ },
2204
+ {
2205
+ "email": "Dianna.Donnelly@mailinator.com",
2206
+ "name": "Hollis Roob",
2207
+ "phone": "(813)513-5162 x057",
2208
+ "phone_type": "cell",
2209
+ "student": "4fee004cca2e43cf27000005",
2210
+ "type": "mother",
2211
+ "id": "4fee004dca2e43cf27000976"
2212
+ },
2213
+ {
2214
+ "email": "Elna@mailinator.com",
2215
+ "name": "Cathryn Roob",
2216
+ "phone": "1-695-828-3812 x167",
2217
+ "phone_type": "emergency",
2218
+ "student": "4fee004cca2e43cf27000005",
2219
+ "type": "father",
2220
+ "id": "4fee004eca2e43cf270009f8"
2221
+ },
2222
+ {
2223
+ "email": "Bret@mailinator.com",
2224
+ "name": "Rodger Roob",
2225
+ "phone": "1-254-341-9642 x4259",
2226
+ "phone_type": "emergency",
2227
+ "student": "4fee004cca2e43cf27000005",
2228
+ "type": "father",
2229
+ "id": "4fee004eca2e43cf27000b93"
2230
+ },
2231
+ {
2232
+ "email": "Zack@mailinator.com",
2233
+ "name": "Kailyn Roob",
2234
+ "phone": "(505)219-6289",
2235
+ "phone_type": "cell",
2236
+ "student": "4fee004cca2e43cf27000005",
2237
+ "type": "mother",
2238
+ "id": "4fee004eca2e43cf27000d70"
2239
+ },
2240
+ {
2241
+ "email": "Milton@mailinator.com",
2242
+ "name": "Cecile Roob",
2243
+ "phone": "571.073.1911 x4786",
2244
+ "phone_type": "emergency",
2245
+ "student": "4fee004cca2e43cf27000005",
2246
+ "type": "father",
2247
+ "id": "4fee004eca2e43cf27001407"
2248
+ }
2249
+ ],
2250
+ "links": [
2251
+ {
2252
+ "rel": "self",
2253
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005/contacts"
2254
+ },
2255
+ {
2256
+ "rel": "student",
2257
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005"
2258
+ }
2259
+ ]
2260
+ }'
2261
+
2262
+ STUDENT_PHOTO = '{
2263
+ "data": {
2264
+ "data": "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",
2265
+ "student": "4fee004cca2e43cf27000005",
2266
+ "id": "4fee004cca2e43cf27000006"
2267
+ },
2268
+ "links": [
2269
+ {
2270
+ "rel": "self",
2271
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005/photo"
2272
+ },
2273
+ {
2274
+ "rel": "student",
2275
+ "uri": "/v1.1/students/4fee004cca2e43cf27000005"
2276
+ }
2277
+ ]
2278
+ }'
2279
+
2280
+ SECTIONS = '{
2281
+ "paging": {
2282
+ "current": 1,
2283
+ "total": 15,
2284
+ "count": 73
2285
+ },
2286
+ "data": [
2287
+ {
2288
+ "data": {
2289
+ "district": "4fd43cc56d11340000000005",
2290
+ "grade": "7",
2291
+ "name": "Advanced Arithmetic 8(A)",
2292
+ "school": "4fee004cca2e43cf27000004",
2293
+ "section_number": "76",
2294
+ "sis_id": "3838",
2295
+ "subject": "math",
2296
+ "teacher": "4fee004dca2e43cf270007f4",
2297
+ "students": [
2298
+ "4fee004dca2e43cf270004ed",
2299
+ "4fee004dca2e43cf2700069f",
2300
+ "4fee004cca2e43cf27000177",
2301
+ "4fee004cca2e43cf270002b7",
2302
+ "4fee004cca2e43cf27000437",
2303
+ "4fee004dca2e43cf2700066b",
2304
+ "4fee004dca2e43cf2700061f",
2305
+ "4fee004dca2e43cf27000701",
2306
+ "4fee004dca2e43cf2700054d",
2307
+ "4fee004cca2e43cf270002b5",
2308
+ "4fee004dca2e43cf27000501",
2309
+ "4fee004dca2e43cf27000617",
2310
+ "4fee004cca2e43cf270000af",
2311
+ "4fee004dca2e43cf27000597",
2312
+ "4fee004dca2e43cf27000719",
2313
+ "4fee004cca2e43cf27000043",
2314
+ "4fee004dca2e43cf27000755",
2315
+ "4fee004cca2e43cf270003df",
2316
+ "4fee004cca2e43cf27000221",
2317
+ "4fee004dca2e43cf2700054b",
2318
+ "4fee004dca2e43cf270004ff",
2319
+ "4fee004cca2e43cf27000325"
2320
+ ],
2321
+ "last_modified": "2012-06-29T19:22:17.766Z",
2322
+ "id": "4fee004dca2e43cf27000807"
2323
+ },
2324
+ "uri": "/v1.1/sections/4fee004dca2e43cf27000807"
2325
+ },
2326
+ {
2327
+ "data": {
2328
+ "district": "4fd43cc56d11340000000005",
2329
+ "grade": "6",
2330
+ "name": "Planetary Chemistry 5(B)",
2331
+ "school": "4fee004cca2e43cf27000001",
2332
+ "section_number": "85",
2333
+ "sis_id": "4917",
2334
+ "subject": "science",
2335
+ "teacher": "4fee004dca2e43cf270007f9",
2336
+ "students": [
2337
+ "4fee004cca2e43cf2700008b",
2338
+ "4fee004dca2e43cf270006f9",
2339
+ "4fee004cca2e43cf27000201",
2340
+ "4fee004dca2e43cf27000675",
2341
+ "4fee004cca2e43cf2700011f",
2342
+ "4fee004cca2e43cf2700016f",
2343
+ "4fee004dca2e43cf2700076d",
2344
+ "4fee004dca2e43cf27000777",
2345
+ "4fee004cca2e43cf270001b7",
2346
+ "4fee004cca2e43cf270002c9",
2347
+ "4fee004dca2e43cf270005a9",
2348
+ "4fee004cca2e43cf2700030d",
2349
+ "4fee004cca2e43cf2700003f",
2350
+ "4fee004dca2e43cf2700076d",
2351
+ "4fee004dca2e43cf27000769",
2352
+ "4fee004cca2e43cf2700042b",
2353
+ "4fee004dca2e43cf27000551",
2354
+ "4fee004cca2e43cf27000071",
2355
+ "4fee004dca2e43cf270005cd",
2356
+ "4fee004dca2e43cf2700045f",
2357
+ "4fee004dca2e43cf270004bf",
2358
+ "4fee004cca2e43cf27000017",
2359
+ "4fee004dca2e43cf270004f9",
2360
+ "4fee004cca2e43cf27000417",
2361
+ "4fee004cca2e43cf27000213",
2362
+ "4fee004cca2e43cf2700013b",
2363
+ "4fee004dca2e43cf27000699",
2364
+ "4fee004dca2e43cf27000787",
2365
+ "4fee004cca2e43cf27000049",
2366
+ "4fee004dca2e43cf270005e5",
2367
+ "4fee004dca2e43cf2700052d",
2368
+ "4fee004dca2e43cf27000479",
2369
+ "4fee004cca2e43cf2700010f",
2370
+ "4fee004dca2e43cf270004af",
2371
+ "4fee004cca2e43cf27000425"
2372
+ ],
2373
+ "last_modified": "2012-06-29T19:22:17.789Z",
2374
+ "id": "4fee004dca2e43cf27000808"
2375
+ },
2376
+ "uri": "/v1.1/sections/4fee004dca2e43cf27000808"
2377
+ },
2378
+ {
2379
+ "data": {
2380
+ "district": "4fd43cc56d11340000000005",
2381
+ "grade": "7",
2382
+ "name": "Advanced Literature 2(A)",
2383
+ "school": "4fee004cca2e43cf27000004",
2384
+ "section_number": "90",
2385
+ "sis_id": "3944",
2386
+ "subject": "english/language arts",
2387
+ "teacher": "4fee004dca2e43cf270007d7",
2388
+ "students": [
2389
+ "4fee004dca2e43cf270004a3",
2390
+ "4fee004cca2e43cf27000197",
2391
+ "4fee004dca2e43cf270004b9",
2392
+ "4fee004cca2e43cf270000bd",
2393
+ "4fee004cca2e43cf27000259",
2394
+ "4fee004cca2e43cf27000069",
2395
+ "4fee004dca2e43cf270004c7",
2396
+ "4fee004cca2e43cf270000c1",
2397
+ "4fee004dca2e43cf2700069f",
2398
+ "4fee004dca2e43cf270006bf",
2399
+ "4fee004dca2e43cf27000637",
2400
+ "4fee004dca2e43cf27000733",
2401
+ "4fee004dca2e43cf27000755",
2402
+ "4fee004dca2e43cf2700066b",
2403
+ "4fee004cca2e43cf27000231",
2404
+ "4fee004dca2e43cf270007cb",
2405
+ "4fee004dca2e43cf27000493",
2406
+ "4fee004cca2e43cf270003b3",
2407
+ "4fee004dca2e43cf270006d5",
2408
+ "4fee004cca2e43cf27000211",
2409
+ "4fee004cca2e43cf27000111",
2410
+ "4fee004dca2e43cf27000443"
2411
+ ],
2412
+ "last_modified": "2012-06-29T19:22:17.839Z",
2413
+ "id": "4fee004dca2e43cf2700080a"
2414
+ },
2415
+ "uri": "/v1.1/sections/4fee004dca2e43cf2700080a"
2416
+ },
2417
+ {
2418
+ "data": {
2419
+ "district": "4fd43cc56d11340000000005",
2420
+ "grade": "8",
2421
+ "name": "Earth Literature 5(B)",
2422
+ "school": "4fee004cca2e43cf27000002",
2423
+ "section_number": "68",
2424
+ "sis_id": "1533",
2425
+ "subject": "english/language arts",
2426
+ "teacher": "4fee004dca2e43cf270007d6",
2427
+ "students": [
2428
+ "4fee004cca2e43cf27000287",
2429
+ "4fee004dca2e43cf27000717",
2430
+ "4fee004cca2e43cf27000173",
2431
+ "4fee004cca2e43cf270000b1",
2432
+ "4fee004cca2e43cf270002f3",
2433
+ "4fee004dca2e43cf2700068b",
2434
+ "4fee004dca2e43cf270005e1",
2435
+ "4fee004dca2e43cf27000579",
2436
+ "4fee004cca2e43cf270000a5",
2437
+ "4fee004cca2e43cf270003e7",
2438
+ "4fee004dca2e43cf2700077f",
2439
+ "4fee004cca2e43cf270003c5",
2440
+ "4fee004cca2e43cf270003a3",
2441
+ "4fee004cca2e43cf270003a1",
2442
+ "4fee004dca2e43cf270006d1",
2443
+ "4fee004cca2e43cf270002f5",
2444
+ "4fee004dca2e43cf27000593",
2445
+ "4fee004dca2e43cf270005c7",
2446
+ "4fee004cca2e43cf2700024b",
2447
+ "4fee004dca2e43cf27000599",
2448
+ "4fee004dca2e43cf2700046d",
2449
+ "4fee004cca2e43cf27000391",
2450
+ "4fee004dca2e43cf27000579",
2451
+ "4fee004cca2e43cf270003a1",
2452
+ "4fee004cca2e43cf270002c7",
2453
+ "4fee004cca2e43cf270000e1",
2454
+ "4fee004dca2e43cf2700070d",
2455
+ "4fee004dca2e43cf27000795"
2456
+ ],
2457
+ "last_modified": "2012-06-29T19:22:17.886Z",
2458
+ "id": "4fee004dca2e43cf2700080c"
2459
+ },
2460
+ "uri": "/v1.1/sections/4fee004dca2e43cf2700080c"
2461
+ },
2462
+ {
2463
+ "data": {
2464
+ "district": "4fd43cc56d11340000000005",
2465
+ "grade": "6",
2466
+ "name": "Earth Biology 4(A)",
2467
+ "school": "4fee004cca2e43cf27000002",
2468
+ "section_number": "57",
2469
+ "sis_id": "2296",
2470
+ "subject": "science",
2471
+ "teacher": "4fee004dca2e43cf270007e7",
2472
+ "students": [
2473
+ "4fee004cca2e43cf27000359",
2474
+ "4fee004cca2e43cf27000039",
2475
+ "4fee004dca2e43cf2700060f",
2476
+ "4fee004cca2e43cf27000391",
2477
+ "4fee004dca2e43cf2700071f",
2478
+ "4fee004cca2e43cf27000247",
2479
+ "4fee004cca2e43cf27000123",
2480
+ "4fee004cca2e43cf270002e5",
2481
+ "4fee004dca2e43cf270006a7",
2482
+ "4fee004cca2e43cf270001f9",
2483
+ "4fee004dca2e43cf27000475",
2484
+ "4fee004dca2e43cf2700068b",
2485
+ "4fee004cca2e43cf27000129",
2486
+ "4fee004cca2e43cf270003e3",
2487
+ "4fee004dca2e43cf270006b7",
2488
+ "4fee004cca2e43cf270003a1",
2489
+ "4fee004dca2e43cf27000749",
2490
+ "4fee004dca2e43cf270006a5",
2491
+ "4fee004cca2e43cf2700034f",
2492
+ "4fee004cca2e43cf270002c7",
2493
+ "4fee004cca2e43cf270000fd",
2494
+ "4fee004cca2e43cf270003d5"
2495
+ ],
2496
+ "last_modified": "2012-06-29T19:22:17.911Z",
2497
+ "id": "4fee004dca2e43cf2700080d"
2498
+ },
2499
+ "uri": "/v1.1/sections/4fee004dca2e43cf2700080d"
2500
+ }
2501
+ ],
2502
+ "links": [
2503
+ {
2504
+ "rel": "self",
2505
+ "uri": "/v1.1/sections?limit=5"
2506
+ },
2507
+ {
2508
+ "rel": "next",
2509
+ "uri": "/v1.1/sections?limit=5&page=2"
2510
+ }
2511
+ ]
2512
+ }'
2513
+
2514
+ SECTION = '{
2515
+ "data": {
2516
+ "district": "4fd43cc56d11340000000005",
2517
+ "grade": "7",
2518
+ "name": "Advanced Arithmetic 8(A)",
2519
+ "school": "4fee004cca2e43cf27000004",
2520
+ "section_number": "76",
2521
+ "sis_id": "3838",
2522
+ "subject": "math",
2523
+ "teacher": "4fee004dca2e43cf270007f4",
2524
+ "students": [
2525
+ "4fee004dca2e43cf270004ed",
2526
+ "4fee004dca2e43cf2700069f",
2527
+ "4fee004cca2e43cf27000177",
2528
+ "4fee004cca2e43cf270002b7",
2529
+ "4fee004cca2e43cf27000437",
2530
+ "4fee004dca2e43cf2700066b",
2531
+ "4fee004dca2e43cf2700061f",
2532
+ "4fee004dca2e43cf27000701",
2533
+ "4fee004dca2e43cf2700054d",
2534
+ "4fee004cca2e43cf270002b5",
2535
+ "4fee004dca2e43cf27000501",
2536
+ "4fee004dca2e43cf27000617",
2537
+ "4fee004cca2e43cf270000af",
2538
+ "4fee004dca2e43cf27000597",
2539
+ "4fee004dca2e43cf27000719",
2540
+ "4fee004cca2e43cf27000043",
2541
+ "4fee004dca2e43cf27000755",
2542
+ "4fee004cca2e43cf270003df",
2543
+ "4fee004cca2e43cf27000221",
2544
+ "4fee004dca2e43cf2700054b",
2545
+ "4fee004dca2e43cf270004ff",
2546
+ "4fee004cca2e43cf27000325"
2547
+ ],
2548
+ "last_modified": "2012-06-29T19:22:17.766Z",
2549
+ "id": "4fee004dca2e43cf27000807"
2550
+ },
2551
+ "links": [
2552
+ {
2553
+ "rel": "self",
2554
+ "uri": "/v1.1/sections/5009b11c15aec0a77b003086"
2555
+ },
2556
+ {
2557
+ "rel": "district",
2558
+ "uri": "/v1.1/sections/5009b11c15aec0a77b003086/district"
2559
+ },
2560
+ {
2561
+ "rel": "teacher",
2562
+ "uri": "/v1.1/sections/5009b11c15aec0a77b003086/teacher"
2563
+ },
2564
+ {
2565
+ "rel": "students",
2566
+ "uri": "/v1.1/sections/5009b11c15aec0a77b003086/students"
2567
+ },
2568
+ {
2569
+ "rel": "school",
2570
+ "uri": "/v1.1/sections/5009b11c15aec0a77b003086/school"
2571
+ }
2572
+ ]
2573
+ }'
2574
+
2575
+ SECTION_SCHOOL = '{
2576
+ "data": {
2577
+ "district": "4fd43cc56d11340000000005",
2578
+ "high_grade": "8",
2579
+ "low_grade": "6",
2580
+ "name": "Clever Memorial High",
2581
+ "nces_id": "26309489",
2582
+ "phone": "1-124-215-8079",
2583
+ "school_number": "797",
2584
+ "sis_id": "3935",
2585
+ "location": {
2586
+ "address": "10960 Kilback View",
2587
+ "city": "North Sarina",
2588
+ "state": "MP",
2589
+ "zip": "58717-8256"
2590
+ },
2591
+ "principal": {
2592
+ "name": "Maryse Tillman",
2593
+ "email": "Otto_Sanford@mailinator.com"
2594
+ },
2595
+ "last_modified": "2012-06-29T19:21:50.685Z",
2596
+ "id": "4fee004cca2e43cf27000004"
2597
+ },
2598
+ "links": [
2599
+ {
2600
+ "rel": "self",
2601
+ "uri": "/v1.1/schools/4fee004cca2e43cf27000004"
2602
+ }
2603
+ ]
2604
+ }'
2605
+
2606
+ SECTION_DISTRICT = '{
2607
+ "data": {
2608
+ "name": "Demo District",
2609
+ "id": "4fd43cc56d11340000000005"
2610
+ },
2611
+ "links": [
2612
+ {
2613
+ "rel": "self",
2614
+ "uri": "/v1.1/districts/4fd43cc56d11340000000005"
2615
+ }
2616
+ ]
2617
+ }'
2618
+
2619
+ SECTION_STUDENTS = '{
2620
+ "paging": {
2621
+ "current": 1,
2622
+ "total": 6,
2623
+ "count": 22
2624
+ },
2625
+ "data": [
2626
+ {
2627
+ "data": {
2628
+ "district": "4fd43cc56d11340000000005",
2629
+ "dob": "1/2/1999",
2630
+ "frl_status": "Y",
2631
+ "gender": "M",
2632
+ "grade": "8",
2633
+ "hispanic_ethnicity": "Y",
2634
+ "race": "Caucasian",
2635
+ "school": "4fee004cca2e43cf27000004",
2636
+ "sis_id": "8888",
2637
+ "state_id": "1618921",
2638
+ "student_number": "14560",
2639
+ "location": {
2640
+ "address": "91441 Farrell Street",
2641
+ "city": "West Eldridge",
2642
+ "state": "AE",
2643
+ "zip": "43344-2962",
2644
+ "lat": "84.19646366033703",
2645
+ "lon": "159.38663405366242"
2646
+ },
2647
+ "name": {
2648
+ "first": "Mertie",
2649
+ "middle": "H",
2650
+ "last": "Volkman"
2651
+ },
2652
+ "last_modified": "2012-06-29T19:21:51.507Z",
2653
+ "id": "4fee004cca2e43cf27000043"
2654
+ },
2655
+ "uri": "/v1.1/students/4fee004cca2e43cf27000043"
2656
+ },
2657
+ {
2658
+ "data": {
2659
+ "district": "4fd43cc56d11340000000005",
2660
+ "dob": "2/15/2000",
2661
+ "frl_status": "Y",
2662
+ "gender": "M",
2663
+ "grade": "8",
2664
+ "hispanic_ethnicity": "N",
2665
+ "race": "American Indian",
2666
+ "school": "4fee004cca2e43cf27000004",
2667
+ "sis_id": "4631",
2668
+ "state_id": "1758899",
2669
+ "student_number": "17070",
2670
+ "location": {
2671
+ "address": "80754 Russel Crossroad",
2672
+ "city": "Port Nehastad",
2673
+ "state": "VA",
2674
+ "zip": "61938-5279",
2675
+ "lat": "-47.90197472088039",
2676
+ "lon": "153.46314903348684"
2677
+ },
2678
+ "name": {
2679
+ "first": "Lavinia",
2680
+ "middle": "M",
2681
+ "last": "Nader"
2682
+ },
2683
+ "last_modified": "2012-06-29T19:21:52.847Z",
2684
+ "id": "4fee004cca2e43cf270000af"
2685
+ },
2686
+ "uri": "/v1.1/students/4fee004cca2e43cf270000af"
2687
+ },
2688
+ {
2689
+ "data": {
2690
+ "district": "4fd43cc56d11340000000005",
2691
+ "dob": "4/12/2000",
2692
+ "frl_status": "Y",
2693
+ "gender": "M",
2694
+ "grade": "8",
2695
+ "hispanic_ethnicity": "N",
2696
+ "race": "Asian",
2697
+ "school": "4fee004cca2e43cf27000004",
2698
+ "sis_id": "3298",
2699
+ "state_id": "4686624",
2700
+ "student_number": "16107",
2701
+ "location": {
2702
+ "address": "97571 Raynor Junction",
2703
+ "city": "Port Francesco",
2704
+ "state": "UT",
2705
+ "zip": "83548-6038",
2706
+ "lat": "-44.60316952317953",
2707
+ "lon": "-55.60492345131934"
2708
+ },
2709
+ "name": {
2710
+ "first": "Bella",
2711
+ "middle": "C",
2712
+ "last": "Keeling"
2713
+ },
2714
+ "last_modified": "2012-06-29T19:21:55.361Z",
2715
+ "id": "4fee004cca2e43cf27000177"
2716
+ },
2717
+ "uri": "/v1.1/students/4fee004cca2e43cf27000177"
2718
+ },
2719
+ {
2720
+ "data": {
2721
+ "district": "4fd43cc56d11340000000005",
2722
+ "dob": "2/7/2000",
2723
+ "frl_status": "N",
2724
+ "gender": "F",
2725
+ "grade": "6",
2726
+ "hispanic_ethnicity": "N",
2727
+ "race": "American Indian",
2728
+ "school": "4fee004cca2e43cf27000004",
2729
+ "sis_id": "6202",
2730
+ "state_id": "2990051",
2731
+ "student_number": "33343",
2732
+ "location": {
2733
+ "address": "8077 Towne Throughway",
2734
+ "city": "North Lillieburgh",
2735
+ "state": "VT",
2736
+ "zip": "90260",
2737
+ "lat": "-86.87210537027568",
2738
+ "lon": "-73.90811132267118"
2739
+ },
2740
+ "name": {
2741
+ "first": "Lauryn",
2742
+ "middle": "B",
2743
+ "last": "Harvey"
2744
+ },
2745
+ "last_modified": "2012-06-29T19:21:57.524Z",
2746
+ "id": "4fee004cca2e43cf27000221"
2747
+ },
2748
+ "uri": "/v1.1/students/4fee004cca2e43cf27000221"
2749
+ }
2750
+ ],
2751
+ "links": [
2752
+ {
2753
+ "rel": "self",
2754
+ "uri": "/v1.1/sections/4fee004dca2e43cf27000807/students?limit=4"
2755
+ },
2756
+ {
2757
+ "rel": "next",
2758
+ "uri": "/v1.1/sections/4fee004dca2e43cf27000807/students?limit=4&page=2"
2759
+ }
2760
+ ]
2761
+ }'
2762
+
2763
+ SECTION_TEACHER = '{
2764
+ "data": {
2765
+ "district": "4fd43cc56d11340000000005",
2766
+ "email": "jermaine.lebsack@mailinator.com",
2767
+ "school": "4fee004cca2e43cf27000004",
2768
+ "sis_id": "8064",
2769
+ "title": "Strategize Next-generation Solutions Manager",
2770
+ "name": {
2771
+ "first": "Estevan",
2772
+ "middle": "N",
2773
+ "last": "Braun"
2774
+ },
2775
+ "last_modified": "2012-06-29T19:22:17.301Z",
2776
+ "id": "4fee004dca2e43cf270007f4"
2777
+ },
2778
+ "links": [
2779
+ {
2780
+ "rel": "self",
2781
+ "uri": "/v1.1/teachers/4fee004dca2e43cf270007f4"
2782
+ }
2783
+ ]
2784
+ }'
2785
+ end