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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ac81a3a6a046beb01b2ae6d34e6ff2f373921d41
4
- data.tar.gz: 35e4d0240dc30cfe9aa5bf38af83de2ab19dcb31
2
+ SHA256:
3
+ metadata.gz: e72a336a1a4c7cd0e21b3065a474993262189398a0ceefb042ded61127a3a43b
4
+ data.tar.gz: 59ff3722aa3d8e78fae4293a1bbd8d78e0de300efc73904c40d305e20f5c1685
5
5
  SHA512:
6
- metadata.gz: dcd9b28d5b6d2607fff300142b0978a97b01d0227fa0ed1f89f828bdcad656b1955b9951864afd3a7ef75277cf4312d6b121ce12e61a882376adce66d9f46f7e
7
- data.tar.gz: b8bc51ac42ea3b4aa4609f6b8d999368b2b181c35006d951133c1169151a02a85a41ba1c24fc035a00263185a26d776801203a3aa27094a05d08710d23919375
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.1)
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.2.0)
20
- faraday (1.0.1)
21
- multipart-post (>= 1.2, < 3)
22
- faraday_middleware (1.0.0)
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.1.1)
31
- oauth (0.5.4)
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)
@@ -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
- records.select { |record| record_uids.to_set.include?(record.uid) }
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
- connection.execute("#{api_url}/token", :post)
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)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OneRoster
4
- VERSION = '2.3.1'
4
+ VERSION = '2.3.4'
5
5
  end
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 = attributes['sourcedId']
14
- @email = attributes['email']
15
- @first_name = attributes['givenName']
16
- @last_name = attributes['familyName']
17
- @provider = 'oneroster'
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.1
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: 2020-08-27 00:00:00.000000000 Z
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
- rubyforge_project:
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.