dmp-dynamo_adapter 0.1.5 → 0.1.8

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: 73072fe825acd0df7976f0b387ca8a441beb225ff387cc8390d8e3c289a028b5
4
- data.tar.gz: f6e31294429df6ca86914a4f7ac8157fee8684ed03fac7fec521858384d649de
3
+ metadata.gz: b0bf9a1c860911aa89f60a60dce597a07c6721b5eec655d45b97a8ee394249c8
4
+ data.tar.gz: 144963e2c761acbb18285f508648c9940b73ba0c04f18c96102da4530caf86b1
5
5
  SHA512:
6
- metadata.gz: 703bb8718f53211b4ee6f4d31fd34ada4a955ee316d86b7a78049ad760039c75e351d5a808ce41bb4d2983ee0c21b9372af3089cd322247398cbda75f3516491
7
- data.tar.gz: c67e27dc354b2206a86f334e4c9a181208587b4be885e71f3644543a3f5219e3afe97a080f2386a9dec3dd633d4dcd7c1ec12c53324f470ffc39b6584700b8e1
6
+ metadata.gz: ad012db60a41f6c3e1ec979df1ce3410de618e8e70efe43897ace24ea0fc5aed6d29e95c7fc2282de840f58b89849883ff4fe738c980c66d878d9c27ba39b5eb
7
+ data.tar.gz: 908957cd229392f7d2a3a0d4b127cb80db7bf01cfca9da082fcc1dc12f600e72bfcac89aee21cba6da7296506dc5c13acfbd3a84d4e6a0929f291f0def1db9f2
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'securerandom'
4
- reequire 'dmp/metadata_handler'
4
+ require 'dmp/metadata_handler'
5
5
 
6
6
  module Dmp
7
7
  # Methods that handle PK generation
@@ -58,6 +58,8 @@ module Dmp
58
58
  def find_by_pk(p_key:, s_key: Dmp::MetadataHandler::LATEST_VERSION)
59
59
  return { status: 404, error: MSG_NOT_FOUND } if p_key.nil?
60
60
 
61
+ p "FINDING BY PK: PK - #{p_key.inspect} / SK - #{s_key.inspect}"
62
+
61
63
  response = @client.get_item(
62
64
  {
63
65
  table_name: ENV['AWS_DYNAMO_TABLE_NAME'],
@@ -81,7 +83,7 @@ module Dmp
81
83
 
82
84
  pk = json['PK']
83
85
  # Translate the incoming :dmp_id into a PK
84
- pk = pk_from_dmp_id(json: json.fetch('dmp_id', {})) if pk.nil?
86
+ pk = Dmp::DmpIdHandler.dmp_id_to_pk(json: json.fetch('dmp_id', {})) if pk.nil?
85
87
 
86
88
  # find_by_PK
87
89
  response = find_by_pk(p_key: pk, s_key: json['SK']) unless pk.nil?
@@ -99,6 +101,9 @@ module Dmp
99
101
  json = prepare_json(json: json)
100
102
  return { status: 400, error: MSG_DEFAULT } if json.nil? || @provenance.nil?
101
103
 
104
+ p "FINDING BY JSON"
105
+ pp json
106
+
102
107
  # Try to find it first
103
108
  result = find_by_json(json: json)
104
109
  return { status: 500, error: MSG_DEFAULT } if result[:status] == 500
@@ -106,7 +111,7 @@ module Dmp
106
111
  return { status: 400, error: MSG_EXISTS } if result[:items].any?
107
112
 
108
113
  # allocate a DMP ID
109
- p_key = preregister_dmp_id
114
+ p_key = Dmp::DmpIdHandler.preregister_dmp_id
110
115
  return { status: 500, error: MSG_NO_DMP_ID } if p_key.nil?
111
116
 
112
117
  # Add the DMPHub specific attributes and then save
@@ -121,8 +126,8 @@ module Dmp
121
126
  { status: 201, items: response.items.map(&:item).compact.uniq }
122
127
  rescue Aws::DynamoDB::Errors::DuplicateItemException
123
128
  { status: 405, error: MSG_EXISTS }
124
- rescue Aws::Errors::ServiceError
125
- { status: 500, error: MSG_DEFAULT }
129
+ rescue Aws::Errors::ServiceError => e
130
+ { status: 500, error: "#{MSG_DEFAULT} - #{e.message}" }
126
131
  end
127
132
  # rubocop:enable Metrics/MethodLength, Metrics/CyclomaticComplexity
128
133
 
@@ -179,8 +184,8 @@ pp json
179
184
  { status: 200, items: response.items.map(&:item).compact.uniq }
180
185
  rescue Aws::DynamoDB::Errors::DuplicateItemException
181
186
  { status: 405, error: MSG_EXISTS }
182
- rescue Aws::Errors::ServiceError
183
- { status: 500, error: MSG_DEFAULT }
187
+ rescue Aws::Errors::ServiceError => e
188
+ { status: 500, error: "#{MSG_DEFAULT} - #{e.message}" }
184
189
  end
185
190
  # rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
186
191
 
@@ -224,8 +229,8 @@ pp json
224
229
  }
225
230
  )
226
231
  { status: 200, items: response.items.map(&:item).compact.uniq }
227
- rescue Aws::Errors::ServiceError
228
- { status: 500, error: MSG_DEFAULT }
232
+ rescue Aws::Errors::ServiceError => e
233
+ { status: 500, error: "#{MSG_DEFAULT} - #{e.message}" }
229
234
  end
230
235
  # rubocop:enable Metrics/MethodLength, Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
231
236
 
@@ -240,6 +245,8 @@ pp json
240
245
  def find_by_dmphub_provenance_identifier(json:)
241
246
  return { status: 400, error: MSG_DEFAULT } if json.nil? || json.fetch('dmp_id', {})['identifier'].nil?
242
247
 
248
+ p "FINDING BY PROVENANCE ID: #{json['dmp_id']['identifier']}"
249
+
243
250
  response = @client.query(
244
251
  {
245
252
  table_name: ENV['AWS_DYNAMO_TABLE_NAME'],
@@ -261,8 +268,8 @@ pp json
261
268
 
262
269
  # If we got a hit, fetch the DMP and return it.
263
270
  find_by_pk(p_key: response.items.first.item[:PK])
264
- rescue Aws::Errors::ServiceError
265
- { status: 500, error: MSG_DEFAULT }
271
+ rescue Aws::Errors::ServiceError => e
272
+ { status: 500, error: "#{MSG_DEFAULT} - #{e.message}" }
266
273
  end
267
274
  # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
268
275
 
@@ -291,8 +298,8 @@ pp json
291
298
  return { status: 404, error: MSG_NOT_FOUND } if response.nil? || response.items.empty?
292
299
 
293
300
  { status: 200, items: response.items.map(&:item).compact.uniq }
294
- rescue Aws::Errors::ServiceError
295
- { status: 500, error: MSG_DEFAULT }
301
+ rescue Aws::Errors::ServiceError => e
302
+ { status: 500, error: "#{MSG_DEFAULT} - #{e.message}" }
296
303
  end
297
304
  # rubocop:enable Metrics/MethodLength
298
305
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dmp-dynamo_adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - briri
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-22 00:00:00.000000000 Z
11
+ date: 2022-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-dynamodb