clever 2.0.1 → 2.3.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
  SHA1:
3
- metadata.gz: afa9a572f90c44164b42ee5c3d61522f119f2038
4
- data.tar.gz: 13046566c22e54742f43f4a6e2b92a401469b442
3
+ metadata.gz: 2ff0b41f8f5609493aaf2935de074f048f4deb32
4
+ data.tar.gz: 0630556066c95480e23759940dc631369deef2e9
5
5
  SHA512:
6
- metadata.gz: c49230be4ad472948ecf37f740961d709039c54aae2c1b776ef5bb93b593ba9d4377bdc9c5ddf59cdce4130600f76e0f43d55d3c54792a4e2e41ceac9a6a2a6d
7
- data.tar.gz: 1587fcfbb2685a93c115e04f1a92947a5607df94dbfb7baf69203be3cd6403e2ef74e406ecab215dd7732e837d4e25ea84a164e2c56c7fab6b63dad9c7dbccac
6
+ metadata.gz: c469ccfd3a5e2eef2575686cd2704822cba36532a458b9910e87bbb908ce6df7cce0ab58acf78fe5afb92902706920d3cdaa3ca22ab2e8e65934dec7e4a34e61
7
+ data.tar.gz: dbb555be80c9b63fc4c2d1600dd0e6906a36a1c69de88817c92eed90904a2d219fb3c4501c7548c3fb1226526aab75ab06abfc67eb7e80c690399fbefd528a44
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- clever (2.0.1)
4
+ clever (2.3.2)
5
5
  faraday
6
6
  faraday_middleware
7
7
 
@@ -3,7 +3,7 @@
3
3
  module Clever
4
4
  class Client
5
5
  attr_accessor :app_id, :app_token, :sync_id, :logger,
6
- :vendor_key, :vendor_secret, :username_source
6
+ :vendor_key, :vendor_secret, :username_source, :staff_username_source
7
7
 
8
8
  attr_reader :api_url, :tokens_endpoint
9
9
 
@@ -86,6 +86,7 @@ module Clever
86
86
  'period' => section.period,
87
87
  'course_number' => course&.number,
88
88
  'grades' => section.grades,
89
+ 'subjects' => section.subjects,
89
90
  'term_name' => term&.name,
90
91
  'term_start_date' => term&.start_date,
91
92
  'term_end_date' => term&.end_date
@@ -135,7 +136,8 @@ module Clever
135
136
  section.teachers.each do |teacher_uid|
136
137
  enrollments[:teacher] << Types::Enrollment.new(
137
138
  'classroom_uid' => section.uid,
138
- 'user_uid' => teacher_uid
139
+ 'user_uid' => teacher_uid,
140
+ 'primary' => section.primary_teacher_uid == teacher_uid
139
141
  )
140
142
  end
141
143
  end
@@ -10,6 +10,14 @@ module Clever
10
10
  variables[key] = value
11
11
  end
12
12
  end
13
+
14
+ def presence(field)
15
+ field unless blank?(field)
16
+ end
17
+
18
+ def blank?(field)
19
+ field.nil? || field == ''
20
+ end
13
21
  end
14
22
  end
15
23
  end
@@ -8,6 +8,7 @@ module Clever
8
8
  :period,
9
9
  :course_number,
10
10
  :grades,
11
+ :subjects,
11
12
  :provider,
12
13
  :term_name,
13
14
  :term_start_date,
@@ -19,6 +20,7 @@ module Clever
19
20
  @period = attributes['period']
20
21
  @course_number = attributes['course_number']
21
22
  @grades = attributes['grades']
23
+ @subjects = attributes['subjects']
22
24
  @term_name = attributes['term_name']
23
25
  @term_start_date = attributes['term_start_date']
24
26
  @term_end_date = attributes['term_end_date']
@@ -5,12 +5,14 @@ module Clever
5
5
  class Enrollment < Base
6
6
  attr_reader :classroom_uid,
7
7
  :user_uid,
8
- :provider
8
+ :provider,
9
+ :primary
9
10
 
10
11
  def initialize(attributes = {})
11
- @classroom_uid = attributes['classroom_uid']
12
- @user_uid = attributes['user_uid']
13
- @provider = 'clever'
12
+ @classroom_uid = attributes['classroom_uid']
13
+ @user_uid = attributes['user_uid']
14
+ @provider = 'clever'
15
+ @primary = attributes.dig('primary') || false
14
16
  end
15
17
  end
16
18
  end
@@ -8,21 +8,25 @@ module Clever
8
8
  :period,
9
9
  :course,
10
10
  :grades,
11
+ :subjects,
11
12
  :students,
12
13
  :teachers,
13
14
  :term_id,
14
- :provider
15
+ :provider,
16
+ :primary_teacher_uid
15
17
 
16
18
  def initialize(attributes = {}, *)
17
- @uid = attributes['id']
18
- @name = attributes['name']
19
- @period = attributes['period']
20
- @course = attributes['course']
21
- @grades = attributes['grade']
22
- @students = attributes['students']
23
- @teachers = attributes['teachers']
24
- @term_id = attributes['term_id']
25
- @provider = 'clever'
19
+ @uid = attributes['id']
20
+ @name = attributes['name']
21
+ @period = attributes['period']
22
+ @course = attributes['course']
23
+ @grades = [presence(attributes['grade'])].compact
24
+ @subjects = [presence(attributes['subject'])].compact
25
+ @students = attributes['students']
26
+ @teachers = attributes['teachers']
27
+ @term_id = attributes['term_id']
28
+ @provider = 'clever'
29
+ @primary_teacher_uid = attributes['teacher']
26
30
  end
27
31
  end
28
32
  end
@@ -37,14 +37,6 @@ module Clever
37
37
 
38
38
  private
39
39
 
40
- def presence(field)
41
- field unless blank?(field)
42
- end
43
-
44
- def blank?(field)
45
- field.nil? || field == ''
46
- end
47
-
48
40
  def username_from(username_source)
49
41
  return if blank?(username_source)
50
42
 
@@ -9,13 +9,49 @@ module Clever
9
9
  :last_name,
10
10
  :provider
11
11
 
12
- def initialize(attributes = {}, *)
12
+ def initialize(attributes = {}, *, client: nil)
13
13
  @uid = attributes['id']
14
14
  @email = attributes['email']
15
15
  @first_name = attributes['name']['first']
16
16
  @last_name = attributes['name']['last']
17
+ @district_username = attributes.dig('credentials', 'district_username')
18
+ @sis_id = attributes['sis_id']
19
+ @username = username(client)
17
20
  @provider = 'clever'
18
21
  end
22
+
23
+ def username(client = nil)
24
+ username_source = client&.staff_username_source
25
+
26
+ @username ||= presence(username_from(username_source))
27
+ end
28
+
29
+ def to_h
30
+ {
31
+ uid: @uid,
32
+ email: @email,
33
+ first_name: @first_name,
34
+ last_name: @last_name,
35
+ username: @username,
36
+ provider: @provider
37
+ }
38
+ end
39
+
40
+ private
41
+
42
+ def username_from(username_source)
43
+ return if blank?(username_source)
44
+
45
+ presence(instance_variable_get("@#{username_source}"))
46
+ end
47
+
48
+ def presence(field)
49
+ field unless blank?(field)
50
+ end
51
+
52
+ def blank?(field)
53
+ field.nil? || field == ''
54
+ end
19
55
  end
20
56
  end
21
57
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Clever
4
- VERSION = '2.0.1'
4
+ VERSION = '2.3.2'
5
5
  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: 2.0.1
4
+ version: 2.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Julius
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-24 00:00:00.000000000 Z
11
+ date: 2020-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday