psu_identity 0.5.1 → 0.6.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
  SHA256:
3
- metadata.gz: ede6bfacb5202361d54d13fa9e8aed416ecffe1030f6c5194f9c1049a0222199
4
- data.tar.gz: 94da5cb3a5ad4deb0931959d31458e210374d62421d8d4cef25efde920962039
3
+ metadata.gz: 51ee8619629274ba4e705f67c851420a9a3e773ab3d5bbd1e08587ebe64f3ecb
4
+ data.tar.gz: 4bf4eacbc97b634d13bae26652362343e1c3c8780d3dfb455371b10ab85fa6e8
5
5
  SHA512:
6
- metadata.gz: 4e5ed78f69e1773cf90274c23138a0f6b05ad0f645437379a2b77471ece8232ab767f280d87e251fc04a3967815fc06a0f93cc9f5db8fc6600f5f17c34bf3421
7
- data.tar.gz: 7a74f77fd41e38db06b86de7885c403a0e4a0fe88cbf7192d05687898cc5b560a976a7587eb14e1ce85e3bb74450293daf5e34023982fb8b2ff4784601606235
6
+ metadata.gz: 3781788fd2253c99aa1113952502473e1ebd1d58fabf4d1771d56e7831db33085a4433f3bb256f890e06ca51271a73354443c999ced1202446cb421e45c5417f
7
+ data.tar.gz: 92a6c28a1eb7ba9e8f3169fdb4ae116f45334b5b62f2e992ce3b9272298a467b01430242cb34a7b1fe4890caf9abf174682d814649b2fefe5b93cc4f0341bf8a
data/.rubocop.yml CHANGED
@@ -25,3 +25,7 @@ Style/OpenStructUse:
25
25
  Exclude:
26
26
  - 'lib/psu_identity/search_service/atomic_link.rb'
27
27
  - 'spec/lib/psu_identity/search_service/atomic_link_spec.rb'
28
+
29
+ Rspec/NestedGroups:
30
+ Exclude:
31
+ - 'spec/lib/psu_identity/search_service/person_spec.rb'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- psu_identity (0.5.1)
4
+ psu_identity (0.6.1)
5
5
  faraday (~> 1.0)
6
6
  json
7
7
  oauth2
@@ -20,6 +20,8 @@ module PsuIdentity::DirectoryService
20
20
  # @param [Hash] args of options to pass to the endpoint
21
21
  # @option args [String] :userid of the person
22
22
  def userid(userid)
23
+ raise NotFound if /\A[[:space:]]*\z/.match?(userid.to_s)
24
+
23
25
  process_userid_response connection.get("#{base_url}/people/#{userid}")
24
26
  end
25
27
 
@@ -49,12 +51,17 @@ module PsuIdentity::DirectoryService
49
51
  def token
50
52
  oauth_client = OAuth2::Client.new(client_id,
51
53
  client_secret, site: oauth_endpoint,
54
+ auth_scheme:,
52
55
  authorize_url: '/oauth/api/authz',
53
56
  token_url: '/oauth/api/token')
54
57
  oauth_token = oauth_client.client_credentials.get_token
55
58
  oauth_token.token
56
59
  end
57
60
 
61
+ def auth_scheme
62
+ @auth_scheme ||= ENV.fetch('PSU_ID_AUTH_SCHEME', 'request_body').to_sym
63
+ end
64
+
58
65
  def client_id
59
66
  @client_id ||= ENV.fetch('PSU_ID_OAUTH_CLIENT_ID')
60
67
  end
@@ -39,19 +39,19 @@ module PsuIdentity::SearchService
39
39
  end
40
40
 
41
41
  def preferred_given_name
42
- data.fetch('preferredGivenName', given_name)
42
+ presence(data['preferredGivenName']) || given_name
43
43
  end
44
44
 
45
45
  def preferred_middle_name
46
- data.fetch('preferredMiddleName', middle_name)
46
+ presence(data['preferredMiddleName']) || middle_name
47
47
  end
48
48
 
49
49
  def preferred_family_name
50
- data.fetch('preferredFamilyName', family_name)
50
+ presence(data['preferredFamilyName']) || family_name
51
51
  end
52
52
 
53
53
  def preferred_honorific_suffix
54
- data.fetch('preferredHonorificSuffix', honorific_suffix)
54
+ presence(data['preferredHonorificSuffix']) || honorific_suffix
55
55
  end
56
56
 
57
57
  def active?
@@ -81,5 +81,15 @@ module PsuIdentity::SearchService
81
81
  def link
82
82
  AtomicLink.new(data['link'])
83
83
  end
84
+
85
+ private
86
+
87
+ def presence(string)
88
+ return nil if string == nil
89
+
90
+ return nil if string == ''
91
+
92
+ string
93
+ end
84
94
  end
85
95
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PsuIdentity
4
- VERSION = '0.5.1'
4
+ VERSION = '0.6.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: psu_identity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Kiessling
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-02 00:00:00.000000000 Z
11
+ date: 2024-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday