uc3-dmp-dynamo 0.0.13 → 0.0.14
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/lib/uc3-dmp-dynamo/client.rb +11 -29
- data/lib/uc3-dmp-dynamo/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b3ca3eccd4443fafe0bf8e1de30d2a1fe545c1dafd4669341777954b616cf6a
|
4
|
+
data.tar.gz: 8a44cfa0bbd402b7f20a416178a2d7e8d32c52b1f5d4fac9e2af0b4d5b5ddc63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3dbba27e4b3401a2537150bb59e317c212fe9cc24f95069d08710edb0a783277364fbb3b15409f5df94d992e15c2aeb48fb5dc2979c87d917c3dbaf450c89281
|
7
|
+
data.tar.gz: 832be3a84f034edfd88571cc84d176505b43f2e6dcc6c774d94b9448ec57187a73501d6269b6f8eaea388daccdd8c130fb360b1943daa90d5e6bf3ff9c2e40a8
|
@@ -30,7 +30,7 @@ module Uc3DmpDynamo
|
|
30
30
|
|
31
31
|
# Fetch a single item
|
32
32
|
# rubocop:disable Metrics/AbcSize
|
33
|
-
def get_item(key:,
|
33
|
+
def get_item(key:, logger: nil)
|
34
34
|
raise ClientError, MSG_INVALID_KEY unless key.is_a?(Hash) && !key[:PK].nil?
|
35
35
|
|
36
36
|
resp = @connection.get_item(
|
@@ -40,11 +40,7 @@ module Uc3DmpDynamo
|
|
40
40
|
return_consumed_capacity: debug ? 'TOTAL' : 'NONE' }
|
41
41
|
)
|
42
42
|
|
43
|
-
|
44
|
-
if debug
|
45
|
-
puts "#{SOURCE} => get_item - #{key}"
|
46
|
-
puts resp[:item].first.inspect
|
47
|
-
end
|
43
|
+
logger.debug(message: "#{SOURCE} fetched DMP ID: #{key}") if logger.respond_to?(:debug)
|
48
44
|
resp[:item].is_a?(Array) ? resp[:item].first : resp[:item]
|
49
45
|
rescue Aws::Errors::ServiceError => e
|
50
46
|
raise ClientError, format(MSG_DYNAMO_ERROR, msg: e.message, trace: e.backtrace)
|
@@ -58,14 +54,14 @@ module Uc3DmpDynamo
|
|
58
54
|
#
|
59
55
|
# See the DynamoDB docs for examples of key_conditions and projection_expressions
|
60
56
|
# rubocop:disable Metrics/AbcSize
|
61
|
-
def query(args:,
|
57
|
+
def query(args:, logger: nil)
|
62
58
|
raise ClientError, MSG_INVALID_KEY unless args.is_a?(Hash) && args.fetch(:key_conditions, {}).any?
|
63
59
|
|
64
60
|
hash = {
|
65
61
|
table_name: @table,
|
66
62
|
key_conditions: args[:key_conditions],
|
67
63
|
consistent_read: false,
|
68
|
-
return_consumed_capacity: debug ? 'TOTAL' : 'NONE'
|
64
|
+
return_consumed_capacity: logger&.level == 'debug' ? 'TOTAL' : 'NONE'
|
69
65
|
}
|
70
66
|
# Look for and add any other filtering or projection args
|
71
67
|
%i[filter_expression expression_attribute_values projection_expression scan_index_forward].each do |key|
|
@@ -75,11 +71,7 @@ module Uc3DmpDynamo
|
|
75
71
|
end
|
76
72
|
|
77
73
|
resp = @connection.query(hash)
|
78
|
-
|
79
|
-
if debug
|
80
|
-
puts "#{SOURCE} => query - args: #{hash.inspect}"
|
81
|
-
puts resp.items.inspect
|
82
|
-
end
|
74
|
+
logger.debug(message: "#{SOURCE} queried for: #{args}") if logger.respond_to?(:debug)
|
83
75
|
return [] unless resp.items.any?
|
84
76
|
return resp.items if resp.items.first.is_a?(Hash)
|
85
77
|
|
@@ -90,30 +82,25 @@ module Uc3DmpDynamo
|
|
90
82
|
# rubocop:enable Metrics/AbcSize
|
91
83
|
|
92
84
|
# Create/Update an item
|
93
|
-
def put_item(json:,
|
85
|
+
def put_item(json:, logger: nil)
|
94
86
|
raise ClientError, MSG_INVALID_KEY unless json.is_a?(Hash) && !json['PK'].nil? && !json['SK'].nil?
|
95
87
|
|
96
88
|
resp = @connection.put_item(
|
97
89
|
{ table_name: @table,
|
98
90
|
item: json,
|
99
|
-
return_consumed_capacity: debug ? 'TOTAL' : 'NONE'
|
91
|
+
return_consumed_capacity: logger&.level == 'debug' ? 'TOTAL' : 'NONE'
|
100
92
|
}
|
101
93
|
)
|
102
94
|
|
103
|
-
|
104
|
-
if debug
|
105
|
-
puts "#{SOURCE} => put_item -"
|
106
|
-
puts json
|
107
|
-
puts resp.inspect
|
108
|
-
end
|
95
|
+
logger.debug(message: "#{SOURCE} put_item DMP ID: #{json['PK']}", details: json) if logger.respond_to?(:debug)
|
109
96
|
resp
|
110
97
|
rescue Aws::Errors::ServiceError => e
|
111
98
|
raise ClientError, format(MSG_DYNAMO_ERROR, msg: e.message, trace: e.backtrace)
|
112
99
|
end
|
113
100
|
|
114
101
|
# Delete an item
|
115
|
-
def delete_item(p_key:, s_key:,
|
116
|
-
raise ClientError, MSG_INVALID_KEY
|
102
|
+
def delete_item(p_key:, s_key:, logger: nil)
|
103
|
+
raise ClientError, MSG_INVALID_KEY if p_key.nil? || s_key.nil?
|
117
104
|
|
118
105
|
resp = @connection.delete_item(
|
119
106
|
{
|
@@ -124,12 +111,7 @@ module Uc3DmpDynamo
|
|
124
111
|
}
|
125
112
|
}
|
126
113
|
)
|
127
|
-
|
128
|
-
if debug
|
129
|
-
puts "#{SOURCE} => delete_item -"
|
130
|
-
puts json
|
131
|
-
puts resp.inspect
|
132
|
-
end
|
114
|
+
logger.debug(message: "#{SOURCE} deleted PK: #{p_key}, SK: #{s_key}") if logger.respond_to?(:debug)
|
133
115
|
resp
|
134
116
|
end
|
135
117
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uc3-dmp-dynamo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
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-06
|
11
|
+
date: 2023-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|