uc3-dmp-api-core 0.0.17 → 0.0.19
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ce7df10e928100fae5b672089be84d873cf758ecac695c9c571abb0ab02a407
|
4
|
+
data.tar.gz: 93dc08eb6b46eefbe86c236edcd273679eadffad2e7283f59016d2ffbbc25ee6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f312834841be19dd00700c2be8b9627f8c68321a8264733af87a87bec0e2863b857591c51e5489a26aabdbfbf236213d79511ac1d3294c87abf28d4876655de
|
7
|
+
data.tar.gz: 15c9bd557334bbaf9338ec1e2fd2904522f728d30ffeac6a2c6d498fce5620ce22fc92ebb11eac2e9e8b3e620d4632ff898f973c02be5a1d66c14aefd1be8159
|
@@ -25,7 +25,7 @@ module Uc3DmpApiCore
|
|
25
25
|
# Returns a hash that is a valid Lambda API response
|
26
26
|
# --------------------------------------------------------------------------------
|
27
27
|
# rubocop:disable Metrics/AbcSize
|
28
|
-
def respond(status: DEFAULT_STATUS_CODE, items: [], errors: [], **args)
|
28
|
+
def respond(status: DEFAULT_STATUS_CODE, logger: nil, items: [], errors: [], **args)
|
29
29
|
url = _url_from_event(event: args[:event]) || SsmReader.get_ssm_value(key: 'api_base_url')
|
30
30
|
return _standard_error(url: url) if url.nil?
|
31
31
|
|
@@ -44,7 +44,10 @@ module Uc3DmpApiCore
|
|
44
44
|
body = body.merge(Paginator.pagination_meta(url: url, item_count: item_count, params: args))
|
45
45
|
|
46
46
|
# If this is a server error, then notify the administrator!
|
47
|
-
|
47
|
+
if status.to_s[0] == '5' && !logger.nil?
|
48
|
+
logger.error(message: errors, details: body)
|
49
|
+
Notifier.notify_administrator(source: logger.source, details: body, event: logger.event)
|
50
|
+
end
|
48
51
|
|
49
52
|
{ statusCode: status.to_i, body: body.compact.to_json, headers: headers }
|
50
53
|
rescue StandardError => e
|
@@ -9,7 +9,7 @@ module Uc3DmpApiCore
|
|
9
9
|
# Shared helper methods for accessing SSM parameters
|
10
10
|
# ----------------------------------------------------
|
11
11
|
class SsmReader
|
12
|
-
SOURCE = 'SsmReader
|
12
|
+
SOURCE = 'Uc3DmpApiCore::SsmReader'
|
13
13
|
|
14
14
|
class << self
|
15
15
|
# Return all of the available keys
|
@@ -20,48 +20,30 @@ module Uc3DmpApiCore
|
|
20
20
|
# Fetch the value for the specified :key
|
21
21
|
# ----------------------------------------------------
|
22
22
|
# rubocop:disable Metrics/AbcSize
|
23
|
-
def get_ssm_value(key:, provenance_name: nil)
|
23
|
+
def get_ssm_value(key:, provenance_name: nil, logger: nil)
|
24
24
|
full_key = _ssm_keys[:"#{key.downcase}"] unless key.nil?
|
25
|
-
|
26
|
-
puts "FULL KEY: #{full_key}"
|
27
|
-
|
25
|
+
logger.debug(message: "Looking for SSM Key: #{full_key}")
|
28
26
|
return nil if full_key.nil?
|
29
27
|
|
30
28
|
key_vals = { env: ENV.fetch('LAMBDA_ENV', 'dev').to_s.downcase }
|
31
29
|
# Swap in the provenance name if applicable
|
32
30
|
key_vals[:provenance] = provenance_name unless provenance_name.nil? ||
|
33
31
|
!full_key.include?('%{provenance}')
|
34
|
-
|
35
|
-
puts "KEY VALS: #{key_vals}"
|
36
|
-
|
37
|
-
fetch_value(key: format(full_key, key_vals))
|
32
|
+
fetch_value(key: format(full_key, key_vals, logger: logger))
|
38
33
|
rescue Aws::Errors::ServiceError => e
|
39
|
-
|
40
|
-
|
41
|
-
)
|
34
|
+
puts "Fatal error in #{SOURCE} - #{e.message}" if logger.nil?
|
35
|
+
logger.error(message: "Looking for SSM Key: #{key} - #{e.message}", details: e.backtrace) unless logger.nil?
|
42
36
|
nil
|
43
37
|
end
|
44
38
|
# rubocop:enable Metrics/AbcSize
|
45
39
|
|
46
40
|
# Call SSM to get the value for the specified key
|
47
|
-
def fetch_value(key:)
|
41
|
+
def fetch_value(key:, logger: nil)
|
48
42
|
resp = Aws::SSM::Client.new.get_parameter(name: key, with_decryption: true)
|
49
|
-
|
50
|
-
puts "FETCHING `#{key}` -- GOT: #{resp.inspect}"
|
51
|
-
|
43
|
+
logger.debug(message: "Searching for SSM Key: #{key}, Found: '#{resp&.parameter&.value}'") unless logger.nil?
|
52
44
|
resp.nil? || resp.parameter.nil? ? nil : resp.parameter.value
|
53
45
|
end
|
54
46
|
|
55
|
-
# Checks to see if debug mode has been enabled in SSM
|
56
|
-
# ----------------------------------------------------
|
57
|
-
def debug_mode?
|
58
|
-
|
59
|
-
puts "Checking to see if we are in debug mode."
|
60
|
-
puts "Key: #{_ssm_keys[:debug_mode]}, Val: #{get_ssm_value(key: _ssm_keys[:debug_mode])}, Downcased: #{get_ssm_value(key: _ssm_keys[:debug_mode])&.to_s&.downcase&.strip} "
|
61
|
-
|
62
|
-
get_ssm_value(key: _ssm_keys[:debug_mode])&.to_s&.downcase&.strip == 'true'
|
63
|
-
end
|
64
|
-
|
65
47
|
private
|
66
48
|
|
67
49
|
# DMPTool/DMPHub SSM keys. See the installation guide for information about how these values are used
|
@@ -72,7 +54,6 @@ puts "Key: #{_ssm_keys[:debug_mode]}, Val: #{get_ssm_value(key: _ssm_keys[:debug
|
|
72
54
|
administrator_email: '/uc3/dmp/hub/%{env}/AdminEmail',
|
73
55
|
api_base_url: '/uc3/dmp/hub/%{env}/ApiBaseUrl',
|
74
56
|
base_url: '/uc3/dmp/hub/%{env}/BaseUrl',
|
75
|
-
debug_mode: '/uc3/dmp/hub/%{env}/Debug',
|
76
57
|
|
77
58
|
dmp_id_api_url: '/uc3/dmp/hub/%{env}/EzidApiUrl',
|
78
59
|
dmp_id_base_url: '/uc3/dmp/hub/%{env}/EzidBaseUrl',
|
data/lib/uc3-dmp-api-core.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uc3-dmp-api-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Riley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-07-
|
11
|
+
date: 2023-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -131,7 +131,6 @@ extra_rdoc_files: []
|
|
131
131
|
files:
|
132
132
|
- README.md
|
133
133
|
- lib/uc3-dmp-api-core.rb
|
134
|
-
- lib/uc3-dmp-api-core/log_writer.rb
|
135
134
|
- lib/uc3-dmp-api-core/notifier.rb
|
136
135
|
- lib/uc3-dmp-api-core/paginator.rb
|
137
136
|
- lib/uc3-dmp-api-core/responder.rb
|
@@ -1,42 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Uc3DmpApiCore
|
4
|
-
# Standardized ways for logging messages and errors to CloudWatch
|
5
|
-
#
|
6
|
-
# Methods expect the following inputs:
|
7
|
-
# - source: the name of the Lambda function or Layer file
|
8
|
-
# - message: the error message as a String or Array of Strings
|
9
|
-
# - details: any additional context as a Hash
|
10
|
-
# - event: the Lambda event if available
|
11
|
-
#
|
12
|
-
# --------------------------------------------------------------------------------
|
13
|
-
class LogWriter
|
14
|
-
class << self
|
15
|
-
# rubocop:disable Metrics/AbcSize
|
16
|
-
def log_error(source:, message:, details: {}, event: {})
|
17
|
-
return false if source.nil? || message.nil?
|
18
|
-
|
19
|
-
message = message.join(', ') if message.is_a?(Array)
|
20
|
-
# Is there a better way here than just 'print'? This ends up in the CloudWatch logs
|
21
|
-
puts "ERROR: #{source} - #{message}"
|
22
|
-
puts " - DETAILS: #{details.to_json}" if details.is_a?(Hash) && details.keys.any?
|
23
|
-
puts " - EVENT: #{event.to_json}" if event.is_a?(Hash) && event.keys.any?
|
24
|
-
|
25
|
-
Notifier.notify_administrator(source: source, details: details, event: event)
|
26
|
-
end
|
27
|
-
# rubocop:enable Metrics/AbcSize
|
28
|
-
|
29
|
-
def log_message(source:, message:, details: {}, event: {})
|
30
|
-
return false if source.nil? || message.nil?
|
31
|
-
|
32
|
-
message = message.join(', ') if message.is_a?(Array)
|
33
|
-
|
34
|
-
# Is there a better way here than just 'print'? This ends up in the CloudWatch logs
|
35
|
-
puts "INFO: #{source} - #{message}"
|
36
|
-
puts " - DETAILS: #{details.to_json}" if details.is_a?(Hash) && details.keys.any?
|
37
|
-
puts " - EVENT: #{event.to_json}" if event.is_a?(Hash) && event.keys.any?
|
38
|
-
true
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|