clever 3.2.8 → 3.2.9

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: 555e971aed2bc72b24d66ad95c92f09deb2b8302f6f53b6d68e3f70d87966e30
4
- data.tar.gz: 368d5cca074115d9ae70d4199edb2facfdfdd7c8795c2a2250fa13ae00d186c3
3
+ metadata.gz: 90f72ac0202566192980b230958038397f7618a1fcb239eebc556be7447cf243
4
+ data.tar.gz: 658d719e6cc05ee3eaae37622ec83ebb1271f7cdc9aeb96a8800de238c2653fe
5
5
  SHA512:
6
- metadata.gz: 0e996e7e8ddbd810bb5ea10a03b128134210fa409708b4dacd61a17ee51b2225d42d86e9ceba2fb28a533e419aec7ec4ce632a18f9a9a8045d7ce1acee148c20
7
- data.tar.gz: 80651e3fd43eaed6fb2a26dc8390756687558ae53cdb30a5be80a27014e9e3bba3c731e337f69e6c31d2a517f62397fe3cd453d09f165093ffd677f122ba80a9
6
+ metadata.gz: 1bc02e4fe7e255869023332c60baf65beaa535874dc7dba42a1d70feb8a86c871f3e1eb27c4df372fb8a68dcb4273d32b48da56d9d123f29c147fc5e048fbc5c
7
+ data.tar.gz: '098e06ae89ebb3ed254999d3b8891bbddcb076e7dddbb455e4c05ab86264c5bd975110164fbd9ebc774f3380f0c5fac869a15f0b5774f5827ad976eada5b4c9c'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- clever (3.2.8)
4
+ clever (3.2.9)
5
5
  faraday
6
6
  faraday_middleware
7
7
 
data/lib/clever/client.rb CHANGED
@@ -103,17 +103,27 @@ module Clever
103
103
  admins.select { |record| record_uids_set.include?(record.uid) }
104
104
  end
105
105
 
106
+ def schools
107
+ authenticate
108
+
109
+ Paginator.fetch(connection, Clever::SCHOOLS_ENDPOINT,
110
+ :get, Types::School, client: self).force
111
+ end
112
+
106
113
  # discard params to make the API behave the same as the one roster gem
107
114
  def classrooms(*)
108
115
  authenticate
109
116
 
110
117
  fetched_courses = courses
118
+ fetched_schools = schools
111
119
 
112
120
  terms_hash = terms.each_with_object({}) { |term, terms| terms[term.uid] = term }
113
121
 
114
122
  sections.map do |section|
115
123
  course = fetched_courses.find { |clever_course| clever_course.uid == section.course }
116
124
  term = terms_hash[section.term_id]
125
+ school = fetched_schools.find { |school| school.uid == section.school_uid }
126
+
117
127
  Types::Classroom.new(
118
128
  'id' => section.uid,
119
129
  'name' => section.name,
@@ -124,7 +134,9 @@ module Clever
124
134
  'term_name' => term&.name,
125
135
  'term_start_date' => term&.start_date,
126
136
  'term_end_date' => term&.end_date,
127
- 'term_id' => section.term_id
137
+ 'term_id' => section.term_id,
138
+ 'school_name' => school&.name,
139
+ 'school_uid' => school&.uid
128
140
  )
129
141
  end
130
142
  end
@@ -13,7 +13,9 @@ module Clever
13
13
  :term_name,
14
14
  :term_start_date,
15
15
  :term_end_date,
16
- :term_id
16
+ :term_id,
17
+ :school_name,
18
+ :school_uid
17
19
 
18
20
  def initialize(attributes = {}, *)
19
21
  @uid = attributes['id']
@@ -26,6 +28,8 @@ module Clever
26
28
  @term_start_date = attributes['term_start_date']
27
29
  @term_end_date = attributes['term_end_date']
28
30
  @term_id = attributes['term_id']
31
+ @school_name = attributes['school_name']
32
+ @school_uid = attributes['school_uid']
29
33
  @provider = 'clever'
30
34
  end
31
35
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Clever
4
+ module Types
5
+ class School
6
+ attr_reader :uid, :name, :number
7
+
8
+ def initialize(attributes = {}, *)
9
+ @uid = attributes['id']
10
+ @name = attributes['name']
11
+ @number = attributes['school_number']
12
+ @provider = 'clever'
13
+ end
14
+ end
15
+ end
16
+ end
@@ -13,6 +13,7 @@ module Clever
13
13
  :teachers,
14
14
  :term_id,
15
15
  :provider,
16
+ :school_uid,
16
17
  :primary_teacher_uid
17
18
 
18
19
  def initialize(attributes = {}, *)
@@ -25,8 +26,9 @@ module Clever
25
26
  @students = attributes['students']
26
27
  @teachers = attributes['teachers']
27
28
  @term_id = attributes['term_id']
28
- @provider = 'clever'
29
29
  @primary_teacher_uid = attributes['teacher']
30
+ @school_uid = attributes['school']
31
+ @provider = 'clever'
30
32
  end
31
33
  end
32
34
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Clever
4
- VERSION = '3.2.8'
4
+ VERSION = '3.2.9'
5
5
  end
data/lib/clever.rb CHANGED
@@ -16,6 +16,7 @@ require 'clever/types/enrollment'
16
16
  require 'clever/types/event'
17
17
  require 'clever/types/student'
18
18
  require 'clever/types/section'
19
+ require 'clever/types/school'
19
20
  require 'clever/types/teacher'
20
21
  require 'clever/types/district_admin'
21
22
  require 'clever/types/school_admin'
@@ -36,6 +37,7 @@ module Clever
36
37
  EVENTS_ENDPOINT = '/v1.2/events'
37
38
  TERMS_ENDPOINT = '/v3.0/terms'
38
39
  GRADES_ENDPOINT = 'https://grades-api.beta.clever.com/v1/grade'
40
+ SCHOOLS_ENDPOINT = '/v3.0/schools'
39
41
 
40
42
  class DistrictNotFound < StandardError; end
41
43
  class ConnectionError < StandardError; end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clever
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.8
4
+ version: 3.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Julius
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-06-19 00:00:00.000000000 Z
11
+ date: 2025-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -198,6 +198,7 @@ files:
198
198
  - lib/clever/types/district_admin.rb
199
199
  - lib/clever/types/enrollment.rb
200
200
  - lib/clever/types/event.rb
201
+ - lib/clever/types/school.rb
201
202
  - lib/clever/types/school_admin.rb
202
203
  - lib/clever/types/section.rb
203
204
  - lib/clever/types/student.rb