clever 2.0.1 → 2.3.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
  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