aeries-api 1.0.0 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dcf4182463fc330866a355e0dffd558a035c1a709b51b9a52ec5d33bdecb0064
4
- data.tar.gz: 8c414cb1684e53d7aedd795a0fcb85c6512417cd828098eac8bb067483be35ee
3
+ metadata.gz: 5769f47b9398392bf09682a8af92d464ebd319c5132e46d8e9d8339b93a1d4bd
4
+ data.tar.gz: 3d0608985d45651e4f7b9c6116c332ea8b8e7ef5e7b465e58f9a1f2e914c1a48
5
5
  SHA512:
6
- metadata.gz: 0fbf1909fbb8fadd6c6fcfe42e9d0023eb813fb39a3d008747b5cde0784117ad066996774f342d57f0f7227a07e8da19a3f5035f07f2511273b2c3a812999dba
7
- data.tar.gz: 2e400f9644398c6997d3d111d2eca2fa314e3dc204f4bba4b0b089792920b8bf218c21b6705b4cc8730c883c40eb881015a0b7bf881c5ec1ed8f67aca53396c4
6
+ metadata.gz: 10080122370c9ad4295b97f80fdd5d16c18021a8aac7cd96e84919af9fe0ac6d9cfc617273ef66ac3a9b30de9ab309af77881bc5fbd0ba75bfa0f3e1efeb9621
7
+ data.tar.gz: 25847d47ba664b5bd69a6cfd5f7d4d2d3028ad8fbb0e701b25f0a1ebfc635b143230af5589b4643afc74a245789f8f2f9c1a95a523183bd006cf6de5933ab91d
@@ -8,6 +8,7 @@ require 'aeries-api/client/students'
8
8
  require 'aeries-api/client/student_groups'
9
9
  require 'aeries-api/client/student_pictures'
10
10
  require 'aeries-api/client/student_programs'
11
+ require 'aeries-api/client/supplemental'
11
12
 
12
13
  module AeriesApi
13
14
  class Client
@@ -18,6 +19,7 @@ module AeriesApi
18
19
  include AeriesApi::Client::StudentGroups
19
20
  include AeriesApi::Client::StudentPictures
20
21
  include AeriesApi::Client::StudentPrograms
22
+ include AeriesApi::Client::Supplemental
21
23
 
22
24
  format :json
23
25
 
@@ -25,19 +27,23 @@ module AeriesApi
25
27
  aeries_cert ||= ENV['AERIES_CERT']
26
28
  base_uri ||= ENV['AERIES_BASE_URI']
27
29
 
28
- self.class.default_options.merge!(headers: { 'AERIES-CERT': aeries_cert }, base_uri: base_uri)
30
+ self.class.default_options.merge!(headers: { 'AERIES-CERT': aeries_cert, 'Content-Type': 'application/json' }, base_uri: base_uri)
29
31
  end
30
32
 
31
33
  private
32
34
 
33
- def mash_and_underscore_keys(parsed_response)
34
- new_response = []
35
- parsed_response.each_with_object(new_response) do |r, a|
36
- r.deep_transform_keys! { |k| k.to_s.underscore }
37
- a << Hashie::Mash.new(r)
35
+ def camelize_keys(payload)
36
+ payload.each do |p|
37
+ p.deep_transform_keys! { |k| k.to_s.camelize }
38
38
  end
39
- return new_response
40
39
  end
41
40
 
41
+ def mash_and_underscore_keys(parsed_response)
42
+ return Hashie::Mash.new(parsed_response.deep_transform_keys! { |k| k.underscore }) if parsed_response.is_a?(Hash)
43
+ parsed_response.each do |k, v|
44
+ v.is_a?(Array) ? mash_and_underscore_keys(v) : k.deep_transform_keys! { |k| k.underscore }
45
+ end
46
+ parsed_response.map! { |r| Hashie::Mash.new(r) }
47
+ end
42
48
  end
43
49
  end
@@ -1,14 +1,10 @@
1
1
  module AeriesApi
2
2
  class Client
3
-
4
3
  module Contacts
5
-
6
4
  def contacts(school_code:, student_id:)
7
5
  response = self.class.get("/schools/#{school_code}/contacts/#{student_id}")
8
6
  mash_and_underscore_keys(response.parsed_response)
9
7
  end
10
-
11
8
  end
12
-
13
9
  end
14
10
  end
@@ -1,19 +1,15 @@
1
1
  module AeriesApi
2
2
  class Client
3
-
4
3
  module Schools
5
-
6
4
  def school(school_code:)
7
5
  response = self.class.get("/schools/#{school_code}")
8
6
  mash_and_underscore_keys(response.parsed_response)
9
7
  end
10
8
 
11
9
  def schools
12
- response = self.class.get("/schools")
10
+ response = self.class.get('/schools')
13
11
  mash_and_underscore_keys(response.parsed_response)
14
12
  end
15
-
16
13
  end
17
-
18
14
  end
19
15
  end
@@ -1,14 +1,10 @@
1
1
  module AeriesApi
2
2
  class Client
3
-
4
3
  module StudentGroups
5
-
6
4
  def student_groups(school_code:)
7
5
  response = self.class.get("/schools/#{school_code}/studentgroups")
8
6
  mash_and_underscore_keys(response.parsed_response)
9
7
  end
10
-
11
8
  end
12
-
13
9
  end
14
10
  end
@@ -1,8 +1,6 @@
1
1
  module AeriesApi
2
2
  class Client
3
-
4
3
  module StudentPictures
5
-
6
4
  def student_picture(school_code:, student_id:)
7
5
  response = self.class.get("/schools/#{school_code}/studentpictures/#{student_id}")
8
6
  mash_and_underscore_keys(response.parsed_response)
@@ -12,8 +10,6 @@ module AeriesApi
12
10
  response = self.class.get("/schools/#{school_code}/studentpictures")
13
11
  mash_and_underscore_keys(response.parsed_response)
14
12
  end
15
-
16
13
  end
17
-
18
14
  end
19
15
  end
@@ -1,14 +1,10 @@
1
1
  module AeriesApi
2
2
  class Client
3
-
4
3
  module StudentPrograms
5
-
6
4
  def student_programs(school_code:, student_id:)
7
5
  response = self.class.get("/schools/#{school_code}/students/#{student_id}/programs")
8
6
  mash_and_underscore_keys(response.parsed_response)
9
7
  end
10
-
11
8
  end
12
-
13
9
  end
14
10
  end
@@ -1,8 +1,6 @@
1
1
  module AeriesApi
2
2
  class Client
3
-
4
3
  module Students
5
-
6
4
  def student(school_code:, student_id:)
7
5
  response = self.class.get("/schools/#{school_code}/students/#{student_id}")
8
6
  mash_and_underscore_keys(response.parsed_response)
@@ -17,8 +15,6 @@ module AeriesApi
17
15
  response = self.class.get(endpoint)
18
16
  mash_and_underscore_keys(response.parsed_response)
19
17
  end
20
-
21
18
  end
22
-
23
19
  end
24
20
  end
@@ -0,0 +1,24 @@
1
+ module AeriesApi
2
+ class Client
3
+ module Supplemental
4
+ def school_supplemental(school_code:, student_id:)
5
+ response = self.class.get("/schools/#{school_code}/schoolsupplemental/#{student_id}")
6
+ mash_and_underscore_keys(response.parsed_response)
7
+ end
8
+
9
+ def district_supplemental(school_code:, student_id:)
10
+ response = self.class.get("/schools/#{school_code}/districtsupplemental/#{student_id}")
11
+ mash_and_underscore_keys(response.parsed_response)
12
+ end
13
+
14
+ def update_school_supplemental(school_code:, student_number:, columns:)
15
+ options = {
16
+ body: { Columns: camelize_keys(columns) }.to_json,
17
+ }
18
+
19
+ response = self.class.post("/updateschoolsupplemental/#{school_code}/#{student_number}", options)
20
+ mash_and_underscore_keys(response.parsed_response)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,3 +1,3 @@
1
1
  module AeriesApi
2
- VERSION = '1.0.0'
2
+ VERSION = '1.0.2'
3
3
  end
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.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Derek Povah
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-07 00:00:00.000000000 Z
11
+ date: 2021-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -161,6 +161,7 @@ files:
161
161
  - lib/aeries-api/client/student_pictures.rb
162
162
  - lib/aeries-api/client/student_programs.rb
163
163
  - lib/aeries-api/client/students.rb
164
+ - lib/aeries-api/client/supplemental.rb
164
165
  - lib/aeries-api/version.rb
165
166
  homepage: https://github.com/derekpovah/aeries-api
166
167
  licenses: