clever 3.2.7 → 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: 733f3fc76f367b9f4372789f08f315eefe80dc9ea405b3289db8a58b6bb7f5db
4
- data.tar.gz: 379d8eb8e6ff1bdcdad875d8008f9c1ee5e9b0faf57efd0b18b7f9b05ca599da
3
+ metadata.gz: 90f72ac0202566192980b230958038397f7618a1fcb239eebc556be7447cf243
4
+ data.tar.gz: 658d719e6cc05ee3eaae37622ec83ebb1271f7cdc9aeb96a8800de238c2653fe
5
5
  SHA512:
6
- metadata.gz: 0a531b0a448db52d6284442d13f0ee081c122bb5fe51fc010516c0a0dcb31340beb6021215e4a4623551dfcc0abc8353457145118a27d4766aeb96e71fc928c2
7
- data.tar.gz: 2f198744c0f2db3a449e301d30342d814fd8896e7948eda306eb36d3f6a7425a66a07f9dae6f010f1531e00e33262adc71bd04858636c3a0797b3f4db43b97fc
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.7)
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,
@@ -123,7 +133,10 @@ module Clever
123
133
  'subjects' => section.subjects,
124
134
  'term_name' => term&.name,
125
135
  'term_start_date' => term&.start_date,
126
- 'term_end_date' => term&.end_date
136
+ 'term_end_date' => term&.end_date,
137
+ 'term_id' => section.term_id,
138
+ 'school_name' => school&.name,
139
+ 'school_uid' => school&.uid
127
140
  )
128
141
  end
129
142
  end
@@ -12,7 +12,10 @@ module Clever
12
12
  :provider,
13
13
  :term_name,
14
14
  :term_start_date,
15
- :term_end_date
15
+ :term_end_date,
16
+ :term_id,
17
+ :school_name,
18
+ :school_uid
16
19
 
17
20
  def initialize(attributes = {}, *)
18
21
  @uid = attributes['id']
@@ -24,6 +27,9 @@ module Clever
24
27
  @term_name = attributes['term_name']
25
28
  @term_start_date = attributes['term_start_date']
26
29
  @term_end_date = attributes['term_end_date']
30
+ @term_id = attributes['term_id']
31
+ @school_name = attributes['school_name']
32
+ @school_uid = attributes['school_uid']
27
33
  @provider = 'clever'
28
34
  end
29
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 = {}, *)
@@ -24,9 +25,10 @@ module Clever
24
25
  @subjects = [presence(attributes['subject'])].compact
25
26
  @students = attributes['students']
26
27
  @teachers = attributes['teachers']
27
- @term_id = attributes['term_id']
28
- @provider = 'clever'
28
+ @term_id = attributes['term_id']
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.7'
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.7
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: 2023-11-30 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