oneroster 2.3.1 → 2.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/Gemfile.lock +29 -7
- data/lib/one_roster/client.rb +6 -4
- data/lib/one_roster/version.rb +1 -1
- data/lib/types/teacher.rb +53 -6
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e72a336a1a4c7cd0e21b3065a474993262189398a0ceefb042ded61127a3a43b
|
4
|
+
data.tar.gz: 59ff3722aa3d8e78fae4293a1bbd8d78e0de300efc73904c40d305e20f5c1685
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c73de1025c312ad11ea71d78df642c5c4aaa74d8409e121ecd03639b4d1bbb1403b06d92142cb499262432c8fb50e87af5844b49a8e8b80f13bd9d74dceb7d5
|
7
|
+
data.tar.gz: 1a267675a5e12e242f9384ce8ab1edc4dcef01256fbd0c8a215d83e86b559b4cd64a73889e87132b13ffc860d1e1d23518c0fef8666785912d8c7adc5d307bbc
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
oneroster (2.3.
|
4
|
+
oneroster (2.3.4)
|
5
5
|
dry-inflector
|
6
6
|
faraday
|
7
7
|
faraday_middleware
|
@@ -16,10 +16,31 @@ GEM
|
|
16
16
|
coderay (1.1.2)
|
17
17
|
diff-lcs (1.3)
|
18
18
|
docile (1.3.1)
|
19
|
-
dry-inflector (0.
|
20
|
-
faraday (1.0
|
21
|
-
|
22
|
-
|
19
|
+
dry-inflector (0.3.0)
|
20
|
+
faraday (1.10.0)
|
21
|
+
faraday-em_http (~> 1.0)
|
22
|
+
faraday-em_synchrony (~> 1.0)
|
23
|
+
faraday-excon (~> 1.1)
|
24
|
+
faraday-httpclient (~> 1.0)
|
25
|
+
faraday-multipart (~> 1.0)
|
26
|
+
faraday-net_http (~> 1.0)
|
27
|
+
faraday-net_http_persistent (~> 1.0)
|
28
|
+
faraday-patron (~> 1.0)
|
29
|
+
faraday-rack (~> 1.0)
|
30
|
+
faraday-retry (~> 1.0)
|
31
|
+
ruby2_keywords (>= 0.0.4)
|
32
|
+
faraday-em_http (1.0.0)
|
33
|
+
faraday-em_synchrony (1.0.0)
|
34
|
+
faraday-excon (1.1.0)
|
35
|
+
faraday-httpclient (1.0.1)
|
36
|
+
faraday-multipart (1.0.4)
|
37
|
+
multipart-post (~> 2)
|
38
|
+
faraday-net_http (1.0.1)
|
39
|
+
faraday-net_http_persistent (1.2.0)
|
40
|
+
faraday-patron (1.0.0)
|
41
|
+
faraday-rack (1.0.0)
|
42
|
+
faraday-retry (1.0.3)
|
43
|
+
faraday_middleware (1.2.0)
|
23
44
|
faraday (~> 1.0)
|
24
45
|
jaro_winkler (1.5.2)
|
25
46
|
json (2.2.0)
|
@@ -27,8 +48,8 @@ GEM
|
|
27
48
|
method_source (0.8.2)
|
28
49
|
mocha (1.8.0)
|
29
50
|
metaclass (~> 0.0.1)
|
30
|
-
multipart-post (2.
|
31
|
-
oauth (0.5.
|
51
|
+
multipart-post (2.2.3)
|
52
|
+
oauth (0.5.10)
|
32
53
|
parallel (1.15.0)
|
33
54
|
parser (2.6.2.0)
|
34
55
|
ast (~> 2.4.0)
|
@@ -66,6 +87,7 @@ GEM
|
|
66
87
|
ruby-progressbar (~> 1.7)
|
67
88
|
unicode-display_width (>= 1.4.0, < 1.6)
|
68
89
|
ruby-progressbar (1.10.0)
|
90
|
+
ruby2_keywords (0.0.5)
|
69
91
|
simple_oauth (0.3.1)
|
70
92
|
simplecov (0.16.1)
|
71
93
|
docile (~> 1.1)
|
data/lib/one_roster/client.rb
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
module OneRoster
|
4
4
|
class Client
|
5
|
-
attr_accessor :app_id, :app_token, :api_url,
|
5
|
+
attr_accessor :app_id, :app_token, :api_url, :token_url,
|
6
6
|
:app_secret, :logger, :vendor_key,
|
7
|
-
:username_source, :oauth_strategy
|
7
|
+
:username_source, :oauth_strategy, :staff_username_source
|
8
8
|
|
9
9
|
attr_reader :authenticated
|
10
10
|
|
@@ -31,7 +31,8 @@ module OneRoster
|
|
31
31
|
|
32
32
|
return records if record_uids.empty?
|
33
33
|
|
34
|
-
|
34
|
+
record_uids_set = record_uids.to_set
|
35
|
+
records.select { |record| record_uids_set.include?(record.uid) }
|
35
36
|
end
|
36
37
|
end
|
37
38
|
|
@@ -127,7 +128,8 @@ module OneRoster
|
|
127
128
|
end
|
128
129
|
|
129
130
|
def token
|
130
|
-
|
131
|
+
url = token_url || "#{api_url}/token"
|
132
|
+
connection.execute(url, :post)
|
131
133
|
end
|
132
134
|
|
133
135
|
def set_auth_headers(token, cookie)
|
data/lib/one_roster/version.rb
CHANGED
data/lib/types/teacher.rb
CHANGED
@@ -9,12 +9,59 @@ module OneRoster
|
|
9
9
|
:last_name,
|
10
10
|
:provider
|
11
11
|
|
12
|
-
def initialize(attributes = {},
|
13
|
-
@uid
|
14
|
-
@email
|
15
|
-
@first_name
|
16
|
-
@last_name
|
17
|
-
@
|
12
|
+
def initialize(attributes = {}, *, client: nil)
|
13
|
+
@uid = attributes['sourcedId']
|
14
|
+
@email = attributes['email']
|
15
|
+
@first_name = attributes['givenName']
|
16
|
+
@last_name = attributes['familyName']
|
17
|
+
@api_username = attributes['username']
|
18
|
+
@username = username(client)
|
19
|
+
@provider = 'oneroster'
|
20
|
+
end
|
21
|
+
|
22
|
+
def username(client = nil)
|
23
|
+
username_source = client&.staff_username_source
|
24
|
+
@username ||= presence(username_from(username_source))
|
25
|
+
end
|
26
|
+
|
27
|
+
def to_h
|
28
|
+
{
|
29
|
+
uid: @uid,
|
30
|
+
email: @email,
|
31
|
+
first_name: @first_name,
|
32
|
+
last_name: @last_name,
|
33
|
+
username: @username,
|
34
|
+
provider: @provider
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
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
|
+
def username_from(username_source)
|
49
|
+
return unless presence(username_source)
|
50
|
+
|
51
|
+
source = username_source(username_source)
|
52
|
+
|
53
|
+
presence(instance_variable_get("@#{source}"))
|
54
|
+
end
|
55
|
+
|
56
|
+
# if the username_source is `sourcedId`, we want to return `uid`
|
57
|
+
# so we can grab the right instance variable
|
58
|
+
def username_source(source)
|
59
|
+
case source
|
60
|
+
when 'sourcedId' then 'uid'
|
61
|
+
when 'username' then 'api_username'
|
62
|
+
else
|
63
|
+
source
|
64
|
+
end
|
18
65
|
end
|
19
66
|
end
|
20
67
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oneroster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Julius
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -265,8 +265,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
265
265
|
- !ruby/object:Gem::Version
|
266
266
|
version: '0'
|
267
267
|
requirements: []
|
268
|
-
|
269
|
-
rubygems_version: 2.6.13
|
268
|
+
rubygems_version: 3.1.6
|
270
269
|
signing_key:
|
271
270
|
specification_version: 4
|
272
271
|
summary: Wrapper for the OneRoster API.
|