addy_lambda 0.1.4 → 0.1.6
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 +4 -4
- data/addy_lambda.gemspec +2 -2
- data/lib/addy_lambda/common.rb +47 -3
- data/lib/addy_lambda/version.rb +1 -1
- metadata +8 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cbd56d5111f9bb6ca950599f30cb7027a192582a8992ca6d59854751cfadab67
|
|
4
|
+
data.tar.gz: 4ccefde4de2d02e5ccae21bc68df5092c8492c873425bcc3155c18c076cc1110
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e0772a3d16a14f73723d290d5d0b7881a61370288c5ba1bed04090548a0291105a8d9ee296ec2406f3b3a204a20740b54d82149261eac6ce3f413d5ce7dd6bca
|
|
7
|
+
data.tar.gz: dfafa14fdc0964557c1dde0eb3a4d2fbe60c0afb029b9a0102932fcf395cda8f0010861d36d13f02f7bfb5901fa7be4128b0baaf5f1b25510fc4a5b96aabdbfa
|
data/addy_lambda.gemspec
CHANGED
|
@@ -3,8 +3,8 @@ require_relative 'lib/addy_lambda/version'
|
|
|
3
3
|
Gem::Specification.new do |spec|
|
|
4
4
|
spec.name = 'addy_lambda'
|
|
5
5
|
spec.version = AddyLambda::VERSION
|
|
6
|
-
spec.authors = ['Alon Sabi']
|
|
7
|
-
spec.email = ['alon@sabi.me']
|
|
6
|
+
spec.authors = ['Alon Sabi', 'Raymond Lin']
|
|
7
|
+
spec.email = ['alon@sabi.me', 'hongkang.lin860@hotmail.com']
|
|
8
8
|
|
|
9
9
|
spec.summary = 'A GEM for re-usable Lambda common functionalities'
|
|
10
10
|
spec.description = 'Include this gem in your Lambda code to provide generic functionality, standardize code, and expedite development'
|
data/lib/addy_lambda/common.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'json'
|
|
2
|
+
require 'logger'
|
|
2
3
|
|
|
3
4
|
module AddyLambda
|
|
4
5
|
# Generic methods such as logging, error handling HTTP requests etc.
|
|
@@ -6,11 +7,54 @@ module AddyLambda
|
|
|
6
7
|
VARIABLE_DIRECT = 'direct'.freeze
|
|
7
8
|
VARIABLE_QUERYSTRING = 'querystring'.freeze
|
|
8
9
|
|
|
9
|
-
def self.generic_log(logger, event, context)
|
|
10
|
+
def self.generic_log(logger, event, context, safe_to_log_override = {})
|
|
11
|
+
# Dictionary to allow certain keys to be logged
|
|
12
|
+
# safe_to_log["key"] = True
|
|
13
|
+
|
|
14
|
+
safe_to_log = {}
|
|
15
|
+
|
|
16
|
+
# Override the dictionar (add or change allowed items)
|
|
17
|
+
safe_to_log.update(safe_to_log_override)
|
|
18
|
+
|
|
19
|
+
# logger.info('## ENVIRONMENT VARIABLES\r' +
|
|
20
|
+
# jsonpickle.encode(dict(**os.environ)))
|
|
21
|
+
#
|
|
22
|
+
# logger = self.logger
|
|
23
|
+
logged_event = recoursive_clean(event, nil, safe_to_log)
|
|
10
24
|
logger.debug('## EVENT')
|
|
11
|
-
logger.debug(
|
|
25
|
+
logger.debug(logged_event.to_json)
|
|
12
26
|
logger.debug('## CONTEXT')
|
|
13
|
-
logger.debug(context.inspect)
|
|
27
|
+
logger.debug(context.inspect.to_json)
|
|
28
|
+
# logger.info("## EVENT\r#{logged_event.to_json}")
|
|
29
|
+
# logger.info("## CONTEXT\r#{context.to_json}")
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def self.recoursive_clean(obj, key, safe_to_log)
|
|
33
|
+
if obj.is_a?(Hash)
|
|
34
|
+
# Recoursively run for dictionary objects
|
|
35
|
+
# return {k: recoursive_clean(v, k, safe_to_log) for k, v in obj.items()}
|
|
36
|
+
obj.map { |k, v| { k => recoursive_clean(v, k, safe_to_log) } }
|
|
37
|
+
elsif obj.is_a?(Array)
|
|
38
|
+
# Recoursively run for arrays
|
|
39
|
+
# return [recoursive_clean(v, None, safe_to_log) for v in obj]
|
|
40
|
+
obj.map { |v| [recoursive_clean(v, key, safe_to_log)] }
|
|
41
|
+
elsif !!safe_to_log[key] || (key.to_s.strip.downcase.end_with?('id') && !safe_to_log.key?(key))
|
|
42
|
+
# If the key is safe to log, and is specified as True, or if it's not specified but ends with "id"
|
|
43
|
+
obj
|
|
44
|
+
elsif !obj.nil? && (!!obj == obj || obj.is_a?(String) && %w[yes no].include?(obj.strip.downcase))
|
|
45
|
+
# If it's "yes" / "no" or a boolean, it's safe to log.
|
|
46
|
+
obj
|
|
47
|
+
elsif obj.nil?
|
|
48
|
+
# Null can be logged
|
|
49
|
+
nil
|
|
50
|
+
elsif obj.is_a?(String) && obj.strip.empty?
|
|
51
|
+
# An empty string can be logged
|
|
52
|
+
''
|
|
53
|
+
else
|
|
54
|
+
# Anything else becomes a "?"
|
|
55
|
+
# Note: This means that a number will become a "?" string.
|
|
56
|
+
'?'
|
|
57
|
+
end
|
|
14
58
|
end
|
|
15
59
|
|
|
16
60
|
def self.get_body_as_object(event)
|
data/lib/addy_lambda/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: addy_lambda
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alon Sabi
|
|
8
|
-
|
|
8
|
+
- Raymond Lin
|
|
9
|
+
autorequire:
|
|
9
10
|
bindir: exe
|
|
10
11
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
+
date: 2024-02-15 00:00:00.000000000 Z
|
|
12
13
|
dependencies:
|
|
13
14
|
- !ruby/object:Gem::Dependency
|
|
14
15
|
name: aws-sdk-lambda
|
|
@@ -84,6 +85,7 @@ description: Include this gem in your Lambda code to provide generic functionali
|
|
|
84
85
|
standardize code, and expedite development
|
|
85
86
|
email:
|
|
86
87
|
- alon@sabi.me
|
|
88
|
+
- hongkang.lin860@hotmail.com
|
|
87
89
|
executables: []
|
|
88
90
|
extensions: []
|
|
89
91
|
extra_rdoc_files: []
|
|
@@ -111,7 +113,7 @@ metadata:
|
|
|
111
113
|
homepage_uri: https://github.com/InvestIMBY/addy_lambda
|
|
112
114
|
source_code_uri: https://github.com/InvestIMBY/addy_lambda
|
|
113
115
|
changelog_uri: https://github.com/InvestIMBY/addy_lambda/changelog
|
|
114
|
-
post_install_message:
|
|
116
|
+
post_install_message:
|
|
115
117
|
rdoc_options: []
|
|
116
118
|
require_paths:
|
|
117
119
|
- lib
|
|
@@ -126,8 +128,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
126
128
|
- !ruby/object:Gem::Version
|
|
127
129
|
version: '0'
|
|
128
130
|
requirements: []
|
|
129
|
-
rubygems_version: 3.
|
|
130
|
-
signing_key:
|
|
131
|
+
rubygems_version: 3.3.26
|
|
132
|
+
signing_key:
|
|
131
133
|
specification_version: 4
|
|
132
134
|
summary: A GEM for re-usable Lambda common functionalities
|
|
133
135
|
test_files: []
|