aeries-api 1.0.0 → 1.0.2

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 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: