aeries-api 1.0.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|