clever 2.3.0 → 2.3.1

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: eadea65a93fb58c3c03e4669c9eee742a4d0ca3b
4
- data.tar.gz: 5cf08d8b4e9c9aa374b522e448ef867fc95db0f6
3
+ metadata.gz: c35d6eada204a0058fad8c09d0bd59a63a928255
4
+ data.tar.gz: 467317854d78559603c9d829899b9adc9cc20cfa
5
5
  SHA512:
6
- metadata.gz: 8d8ba0401e1c2076e71b8e633a53d2e388a72b1e4c1bd49ac01d1792e0801002c12d743578be42ba75deacd96355f80c5a4584a49aa6e40ca50e19352de6fed5
7
- data.tar.gz: 55e3247234f4b6612f6ee9dd90c16773608b5c042042e323f562446341e5f8226cdd582a98c198814a3ad36b94d3c49eb60e1fc661cb55c47ec9e324af258dad
6
+ metadata.gz: 7595b689345c6a9dc347a561f7c0674ae4a82d53b436455f6ce8e5b0bfb278ac39ccb63e625ffbd052a08c291c426f810927d89c6a3c72e8723c0a071d2b9642
7
+ data.tar.gz: 6dc199bfa6d54d851a607cb04d52edb3c5393a5515e28c89ddf6aa6ab1790ecfd542d6405d80dfadb98152c6a7a658ebfb923f24aaacbb20026e40d7237d4e4f
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- clever (2.3.0)
4
+ clever (2.3.1)
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
 
@@ -9,13 +9,38 @@ 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
+ private
30
+
31
+ def username_from(username_source)
32
+ return if blank?(username_source)
33
+
34
+ presence(instance_variable_get("@#{username_source}"))
35
+ end
36
+
37
+ def presence(field)
38
+ field unless blank?(field)
39
+ end
40
+
41
+ def blank?(field)
42
+ field.nil? || field == ''
43
+ end
19
44
  end
20
45
  end
21
46
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Clever
4
- VERSION = '2.3.0'
4
+ VERSION = '2.3.1'
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.3.0
4
+ version: 2.3.1
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-18 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