dmp-dynamo_adapter 0.2.6 → 0.2.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dmp/dmp_id_handler.rb +4 -1
- data/lib/dmp/dynamo_adapter.rb +21 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41ac93e31c250106a76873be5e069337fe772387bef81350afdffe231a09ad80
|
4
|
+
data.tar.gz: 9998934e79fbdb99639088e64bea3b6a3b516df5b20db4ce8733e7c5bcc7c10c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9bdd9d6d4ab79239ca07993ebcb991f3d9298ce01f21058a841921970646b8f08b33ee5239338b95626ca37e19f1272b37da3706425fd985b7a17f2db67fa205
|
7
|
+
data.tar.gz: 7d374a240cac71d3cd65d1422fbb983e1b4e10f6d8e1096ad9a4ed973d521229a9bf078db1c7a86e8862c3ad596f95e7f4899e9c0e11751339691e1006cd3dbd
|
data/lib/dmp/dmp_id_handler.rb
CHANGED
@@ -22,7 +22,10 @@ p 'PREREGISTER DMP ID:'
|
|
22
22
|
|
23
23
|
while dmp_id == '' && counter <= 10
|
24
24
|
prefix = "#{ENV['DMP_ID_SHOULDER']}.#{SecureRandom.hex(4).upcase}"
|
25
|
-
|
25
|
+
result = Dmp::DynamoAdapter.find_by_pk(
|
26
|
+
p_key: Dmp::MetadataHandler.append_pk_prefix(dmp: dmp_id)
|
27
|
+
)
|
28
|
+
dmp_id = prefix unless result[:status] != 404
|
26
29
|
counter += 1
|
27
30
|
end
|
28
31
|
# Something went wrong and it was unable to identify a unique id
|
data/lib/dmp/dynamo_adapter.rb
CHANGED
@@ -89,8 +89,7 @@ p "FINDING BY PK: PK - #{p_key.inspect} / SK - #{s_key.inspect}"
|
|
89
89
|
|
90
90
|
# find_by_PK
|
91
91
|
response = find_by_pk(p_key: pk, s_key: json['SK']) unless pk.nil?
|
92
|
-
return response
|
93
|
-
return response unless response[:items].nil? || response[:items].empty?
|
92
|
+
return response unless response[:status] != 404
|
94
93
|
|
95
94
|
# find_by_dmphub_provenance_id -> if no PK and no dmp_id result
|
96
95
|
find_by_dmphub_provenance_identifier(json: json)
|
@@ -110,7 +109,7 @@ p "FINDING BY PK: PK - #{p_key.inspect} / SK - #{s_key.inspect}"
|
|
110
109
|
return { status: 400, error: MSG_EXISTS } if result.fetch(:items, []).any?
|
111
110
|
|
112
111
|
# allocate a DMP ID
|
113
|
-
p_key =
|
112
|
+
p_key = preregister_dmp_id
|
114
113
|
|
115
114
|
p "PRE REGISTERED DMP ID: #{p_key.inspect}"
|
116
115
|
|
@@ -289,6 +288,25 @@ pp response.data
|
|
289
288
|
end
|
290
289
|
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize
|
291
290
|
|
291
|
+
# Preassign a DMP ID that will leater be sent to the DOI minting authority (EZID)
|
292
|
+
def preregister_dmp_id
|
293
|
+
dmp_id = ''
|
294
|
+
counter = 0
|
295
|
+
|
296
|
+
p 'PREREGISTER DMP ID:'
|
297
|
+
|
298
|
+
while dmp_id == '' && counter <= 10
|
299
|
+
prefix = "#{ENV['DMP_ID_SHOULDER']}.#{SecureRandom.hex(4).upcase}"
|
300
|
+
result = find_by_pk(p_key: Dmp::MetadataHandler.append_pk_prefix(dmp: dmp_id))
|
301
|
+
dmp_id = prefix unless result[:status] != 404
|
302
|
+
counter += 1
|
303
|
+
end
|
304
|
+
# Something went wrong and it was unable to identify a unique id
|
305
|
+
return nil if counter >= 10
|
306
|
+
|
307
|
+
"#{Dmp::MetadataHandler::PK_DMP_PREFIX}#{dmp_id_base_url}#{dmp_id}"
|
308
|
+
end
|
309
|
+
|
292
310
|
# Convert the latest version into a historical version
|
293
311
|
# rubocop:disable Metrics/MethodLength
|
294
312
|
def version_it(dmp:)
|