aeries-api 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/aeries-api.rb +19 -1
- data/lib/aeries-api/client.rb +3 -0
- data/lib/aeries-api/client/contacts.rb +1 -0
- data/lib/aeries-api/client/schools.rb +2 -0
- data/lib/aeries-api/client/student_groups.rb +1 -0
- data/lib/aeries-api/client/student_pictures.rb +2 -0
- data/lib/aeries-api/client/student_programs.rb +1 -0
- data/lib/aeries-api/client/students.rb +2 -0
- data/lib/aeries-api/client/supplemental.rb +3 -0
- data/lib/aeries-api/error_handler.rb +22 -0
- data/lib/aeries-api/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 878d38ffffac76bf491d369d7bd8a3f9238b5ec30055ba5af5a01595251a9eb3
|
4
|
+
data.tar.gz: 4a149b37d5155e5411167fbc86e141adcc45efc82b2aa80c0ba77681e53424e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fbe805cc25342a4af2bf439c2affcfc0b405f21f1fa05e583a602f9bb801710eb894b56bcdd404ec2f83a84cafecb3daa9d5f985a299ab1ac96c8147c5c5444f
|
7
|
+
data.tar.gz: 7939d7a015af2fe09efebf9e9199d86d0bfa39fc9f2f7b774becfcb60758f98affa07dcb35dab1a9b58ff82c8d2462d78181b787f8dfcb4ea7ae75ab692eff32
|
data/lib/aeries-api.rb
CHANGED
@@ -3,5 +3,23 @@ require 'aeries-api/version'
|
|
3
3
|
require 'aeries-api/client'
|
4
4
|
|
5
5
|
module AeriesApi
|
6
|
-
class
|
6
|
+
class ResponseError < StandardError
|
7
|
+
attr_accessor :response
|
8
|
+
|
9
|
+
def initialize(response)
|
10
|
+
message = response.parsed_response['Message']
|
11
|
+
super(message.length <= 50 ? message[0..50] : message)
|
12
|
+
@response = response
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class AuthenticationError < ResponseError; end
|
17
|
+
|
18
|
+
class BadRequest < ResponseError; end
|
19
|
+
|
20
|
+
class Forbidden < ResponseError; end
|
21
|
+
|
22
|
+
class NotFound < ResponseError; end
|
23
|
+
|
24
|
+
class ServerError < ResponseError; end
|
7
25
|
end
|
data/lib/aeries-api/client.rb
CHANGED
@@ -9,6 +9,7 @@ require 'aeries-api/client/student_groups'
|
|
9
9
|
require 'aeries-api/client/student_pictures'
|
10
10
|
require 'aeries-api/client/student_programs'
|
11
11
|
require 'aeries-api/client/supplemental'
|
12
|
+
require 'aeries-api/error_handler'
|
12
13
|
|
13
14
|
module AeriesApi
|
14
15
|
class Client
|
@@ -24,6 +25,8 @@ module AeriesApi
|
|
24
25
|
format :json
|
25
26
|
|
26
27
|
def initialize(aeries_cert: nil, base_uri: nil)
|
28
|
+
@error_handler = AeriesApi::ErrorHandler.new
|
29
|
+
|
27
30
|
aeries_cert ||= ENV['AERIES_CERT']
|
28
31
|
base_uri ||= ENV['AERIES_BASE_URI']
|
29
32
|
|
@@ -3,11 +3,13 @@ module AeriesApi
|
|
3
3
|
module Schools
|
4
4
|
def school(school_code:)
|
5
5
|
response = self.class.get("/schools/#{school_code}")
|
6
|
+
@error_handler.handle_error(response)
|
6
7
|
mash_and_underscore_keys(response.parsed_response)
|
7
8
|
end
|
8
9
|
|
9
10
|
def schools
|
10
11
|
response = self.class.get('/schools')
|
12
|
+
@error_handler.handle_error(response)
|
11
13
|
mash_and_underscore_keys(response.parsed_response)
|
12
14
|
end
|
13
15
|
end
|
@@ -3,11 +3,13 @@ module AeriesApi
|
|
3
3
|
module StudentPictures
|
4
4
|
def student_picture(school_code:, student_id:)
|
5
5
|
response = self.class.get("/schools/#{school_code}/studentpictures/#{student_id}")
|
6
|
+
@error_handler.handle_error(response)
|
6
7
|
mash_and_underscore_keys(response.parsed_response)
|
7
8
|
end
|
8
9
|
|
9
10
|
def student_pictures(school_code:)
|
10
11
|
response = self.class.get("/schools/#{school_code}/studentpictures")
|
12
|
+
@error_handler.handle_error(response)
|
11
13
|
mash_and_underscore_keys(response.parsed_response)
|
12
14
|
end
|
13
15
|
end
|
@@ -3,6 +3,7 @@ module AeriesApi
|
|
3
3
|
module StudentPrograms
|
4
4
|
def student_programs(school_code:, student_id:)
|
5
5
|
response = self.class.get("/schools/#{school_code}/students/#{student_id}/programs")
|
6
|
+
@error_handler.handle_error(response)
|
6
7
|
mash_and_underscore_keys(response.parsed_response)
|
7
8
|
end
|
8
9
|
end
|
@@ -3,6 +3,7 @@ module AeriesApi
|
|
3
3
|
module Students
|
4
4
|
def student(school_code:, student_id:)
|
5
5
|
response = self.class.get("/schools/#{school_code}/students/#{student_id}")
|
6
|
+
@error_handler.handle_error(response)
|
6
7
|
mash_and_underscore_keys(response.parsed_response)
|
7
8
|
end
|
8
9
|
|
@@ -13,6 +14,7 @@ module AeriesApi
|
|
13
14
|
endpoint = "/schools/#{school_code}/students"
|
14
15
|
end
|
15
16
|
response = self.class.get(endpoint)
|
17
|
+
@error_handler.handle_error(response)
|
16
18
|
mash_and_underscore_keys(response.parsed_response)
|
17
19
|
end
|
18
20
|
end
|
@@ -3,11 +3,13 @@ module AeriesApi
|
|
3
3
|
module Supplemental
|
4
4
|
def school_supplemental(school_code:, student_id:)
|
5
5
|
response = self.class.get("/schools/#{school_code}/schoolsupplemental/#{student_id}")
|
6
|
+
@error_handler.handle_error(response)
|
6
7
|
mash_and_underscore_keys(response.parsed_response)
|
7
8
|
end
|
8
9
|
|
9
10
|
def district_supplemental(school_code:, student_id:)
|
10
11
|
response = self.class.get("/schools/#{school_code}/districtsupplemental/#{student_id}")
|
12
|
+
@error_handler.handle_error(response)
|
11
13
|
mash_and_underscore_keys(response.parsed_response)
|
12
14
|
end
|
13
15
|
|
@@ -17,6 +19,7 @@ module AeriesApi
|
|
17
19
|
}
|
18
20
|
|
19
21
|
response = self.class.post("/updateschoolsupplemental/#{school_code}/#{student_number}", options)
|
22
|
+
@error_handler.handle_error(response)
|
20
23
|
mash_and_underscore_keys(response.parsed_response)
|
21
24
|
end
|
22
25
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module AeriesApi
|
2
|
+
class ErrorHandler
|
3
|
+
def handle_error(response)
|
4
|
+
return if response.success?
|
5
|
+
raise http_errors[response.code].new(response)
|
6
|
+
end
|
7
|
+
|
8
|
+
private
|
9
|
+
|
10
|
+
def http_errors
|
11
|
+
{
|
12
|
+
400 => AeriesApi::BadRequest,
|
13
|
+
401 => AeriesApi::AuthenticationError,
|
14
|
+
404 => AeriesApi::NotFound,
|
15
|
+
500 => AeriesApi::ServerError,
|
16
|
+
502 => AeriesApi::ServerError,
|
17
|
+
503 => AeriesApi::ServerError,
|
18
|
+
504 => AeriesApi::ServerError,
|
19
|
+
}
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/aeries-api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aeries-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Derek Povah
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -162,6 +162,7 @@ files:
|
|
162
162
|
- lib/aeries-api/client/student_programs.rb
|
163
163
|
- lib/aeries-api/client/students.rb
|
164
164
|
- lib/aeries-api/client/supplemental.rb
|
165
|
+
- lib/aeries-api/error_handler.rb
|
165
166
|
- lib/aeries-api/version.rb
|
166
167
|
homepage: https://github.com/derekpovah/aeries-api
|
167
168
|
licenses:
|
@@ -185,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
186
|
- !ruby/object:Gem::Version
|
186
187
|
version: '0'
|
187
188
|
requirements: []
|
188
|
-
rubygems_version: 3.
|
189
|
+
rubygems_version: 3.2.15
|
189
190
|
signing_key:
|
190
191
|
specification_version: 4
|
191
192
|
summary: A simple REST client for the Aeries SIS API
|