dmp-dynamo_adapter 0.2.7 → 0.3.0
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/dmp/dmp_id_handler.rb +1 -22
- data/lib/dmp/dynamo_adapter.rb +10 -6
- data/lib/dmp/metadata_handler.rb +2 -2
- 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: 1df64725fca2ba042c200d8615e9d304503836f48bd04451cb08a034773b4ad9
|
4
|
+
data.tar.gz: ce3dc12d41f2b48f7106d390cb0ef7d7b61f5ea3d77337adba094e8604f59575
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0393c336cc05254ae08dc757f449fda523f6caaaff7a65241b466d468af7ef9e595a95ea56d2b6a3934dc406bf9414b0da2bc2c06ea77c8e7d89c61abb87331
|
7
|
+
data.tar.gz: d2ac537a78af198168ff50006a8d74ed880f0103f2cce91045c48578dbbd7e44815205f37d7167c206c8cd468ee92bad35caca6d4af96700aaf2b66950e07ff0
|
data/lib/dmp/dmp_id_handler.rb
CHANGED
@@ -10,28 +10,7 @@ module Dmp
|
|
10
10
|
|
11
11
|
class << self
|
12
12
|
def dmp_id_base_url
|
13
|
-
ENV['DMP_ID_BASE_URL']
|
14
|
-
end
|
15
|
-
|
16
|
-
# Preassign a DMP ID that will leater be sent to the DOI minting authority (EZID)
|
17
|
-
def preregister_dmp_id
|
18
|
-
dmp_id = ''
|
19
|
-
counter = 0
|
20
|
-
|
21
|
-
p 'PREREGISTER DMP ID:'
|
22
|
-
|
23
|
-
while dmp_id == '' && counter <= 10
|
24
|
-
prefix = "#{ENV['DMP_ID_SHOULDER']}.#{SecureRandom.hex(4).upcase}"
|
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
|
29
|
-
counter += 1
|
30
|
-
end
|
31
|
-
# Something went wrong and it was unable to identify a unique id
|
32
|
-
return nil if counter >= 10
|
33
|
-
|
34
|
-
"#{Dmp::MetadataHandler::PK_DMP_PREFIX}#{dmp_id_base_url}#{dmp_id}"
|
13
|
+
ENV['DMP_ID_BASE_URL']&.end_with?('/') ? ENV['DMP_ID_BASE_URL'] : "#{ENV['DMP_ID_BASE_URL']}/"
|
35
14
|
end
|
36
15
|
|
37
16
|
# Format the DMP ID in the way we want it
|
data/lib/dmp/dynamo_adapter.rb
CHANGED
@@ -70,7 +70,7 @@ p "FINDING BY PK: PK - #{p_key.inspect} / SK - #{s_key.inspect}"
|
|
70
70
|
return_consumed_capacity: @debug_mode ? 'TOTAL' : 'NONE'
|
71
71
|
}
|
72
72
|
)
|
73
|
-
return { status: 404, error: MSG_NOT_FOUND } if response
|
73
|
+
return { status: 404, error: MSG_NOT_FOUND } if response.fetch(:item, []).empty?
|
74
74
|
|
75
75
|
{ status: 200, items: [response[:item]] }
|
76
76
|
rescue Aws::Errors::ServiceError => e
|
@@ -129,11 +129,14 @@ p "PUTTING ITEM:"
|
|
129
129
|
return_consumed_capacity: @debug_mode ? 'TOTAL' : 'NONE'
|
130
130
|
}
|
131
131
|
)
|
132
|
+
# Fetch the newly created record
|
133
|
+
response = find_by_pk(p_key: p_key, s_key: Dmp::MetadataHandler::LATEST_VERSION)
|
134
|
+
return { status: 500, error: MSG_DEFAULT } unless response[:status] == 200
|
132
135
|
|
133
136
|
p 'CREATED!?'
|
134
|
-
pp response
|
137
|
+
pp response[:items]
|
135
138
|
|
136
|
-
{ status: 201, items: [
|
139
|
+
{ status: 201, items: response[:items] }
|
137
140
|
rescue Aws::DynamoDB::Errors::DuplicateItemException
|
138
141
|
{ status: 405, error: MSG_EXISTS }
|
139
142
|
rescue Aws::Errors::ServiceError => e
|
@@ -176,7 +179,7 @@ p ''
|
|
176
179
|
|
177
180
|
json = splice_json(original_version: version_result[:items].first&.item, new_version: json)
|
178
181
|
|
179
|
-
p ''
|
182
|
+
# p ''
|
180
183
|
p "AFTER:"
|
181
184
|
pp json
|
182
185
|
|
@@ -253,7 +256,8 @@ pp json
|
|
253
256
|
# Attempt to find the DMP item by its 'is_metadata_for' :dmproadmap_related_identifier
|
254
257
|
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
255
258
|
def find_by_dmphub_provenance_identifier(json:)
|
256
|
-
return { status: 400, error: MSG_DEFAULT } if json.nil? ||
|
259
|
+
return { status: 400, error: MSG_DEFAULT } if json.nil? ||
|
260
|
+
json.fetch('dmp_id', {})['identifier'].nil?
|
257
261
|
|
258
262
|
p "FINDING BY PROVENANCE ID: #{json['dmp_id']['identifier']}"
|
259
263
|
|
@@ -304,7 +308,7 @@ p 'PREREGISTER DMP ID:'
|
|
304
308
|
# Something went wrong and it was unable to identify a unique id
|
305
309
|
return nil if counter >= 10
|
306
310
|
|
307
|
-
"#{Dmp::MetadataHandler::PK_DMP_PREFIX}#{dmp_id_base_url}#{dmp_id}"
|
311
|
+
"#{Dmp::MetadataHandler::PK_DMP_PREFIX}#{Dmp::DmpIdHandler.dmp_id_base_url}#{dmp_id}"
|
308
312
|
end
|
309
313
|
|
310
314
|
# Convert the latest version into a historical version
|
data/lib/dmp/metadata_handler.rb
CHANGED
@@ -74,7 +74,7 @@ p "ANNOTATING METADATA:"
|
|
74
74
|
annotated['dmp_id'] = Dmp::DmpIdHandler.pk_to_dmp_id(p_key: annotated['PK'])
|
75
75
|
|
76
76
|
# Update the modification timestamps
|
77
|
-
annotated['dmphub_modification_day'] = Time.now.strftime('%Y-%
|
77
|
+
annotated['dmphub_modification_day'] = Time.now.strftime('%Y-%m-%d')
|
78
78
|
annotated['dmphub_updated_at'] = Time.now.iso8601
|
79
79
|
# Only add the Creation date if it is blank
|
80
80
|
annotated['dmphub_created_at'] = Time.now.iso8601 if json['dmphub_created_at'].nil?
|
@@ -85,7 +85,7 @@ p "ANNOTATING METADATA:"
|
|
85
85
|
json.fetch('dmp_id', {})['identifier'].nil?
|
86
86
|
|
87
87
|
# Record the original Provenance system's identifier
|
88
|
-
annotated['dmphub_provenance_identifier'] = json
|
88
|
+
annotated['dmphub_provenance_identifier'] = json.fetch('dmp_id', {})['identifier']
|
89
89
|
annotated
|
90
90
|
end
|
91
91
|
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize
|