psu_identity 0.5.1 → 0.6.1

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
  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