uc3-dmp-id 0.0.6 → 0.0.8
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-id/creator.rb +1 -1
- data/lib/uc3-dmp-id/deleter.rb +1 -1
- data/lib/uc3-dmp-id/finder.rb +14 -14
- data/lib/uc3-dmp-id/updater.rb +1 -1
- data/lib/uc3-dmp-id/validator.rb +1 -1
- data/lib/uc3-dmp-id/version.rb +1 -1
- data/lib/uc3-dmp-id/versioner.rb +1 -1
- 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: 4246dcd22bffa17f20b22217a7b2dbd5cf205bf6e062197bbc179d8bd15663df
|
4
|
+
data.tar.gz: 1427526f7079ee63b3b0ea769557bf28b0c680124860a31e3c4ec36255b1fd11
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a110c35c6fb293ff7e4ad7d47e21fc1fe20ca9f21a5830f3fb151af13c9e3c30e6caf9c7412802736d7909c53d43fade84c00d175228698ff65f2cadc23a1e6
|
7
|
+
data.tar.gz: cdb727bf7a72f06d0cf9310bbf7c8710a8ce27b4bb3b1d57eed932d50e4620edfd65d318acd673e448d733fd3bcef75b7496cc49493f01f72ffd7d04264c2722
|
data/lib/uc3-dmp-id/creator.rb
CHANGED
data/lib/uc3-dmp-id/deleter.rb
CHANGED
data/lib/uc3-dmp-id/finder.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'uc3-dmp-dynamo'
|
4
4
|
|
5
5
|
module Uc3DmpId
|
6
|
-
class Uc3DmpIdFinderError
|
6
|
+
class Uc3DmpIdFinderError < StandardError; end
|
7
7
|
|
8
8
|
# Methods to find/search for DMP IDs
|
9
9
|
class Finder
|
@@ -23,7 +23,7 @@ module Uc3DmpId
|
|
23
23
|
|
24
24
|
# Find the DMP's versions
|
25
25
|
# -------------------------------------------------------------------------
|
26
|
-
def versions(p_key:, client: nil,
|
26
|
+
def versions(p_key:, client: nil, debug: false)
|
27
27
|
raise Uc3DmpIdFinderError, MSG_MISSING_PK if p_key.nil?
|
28
28
|
|
29
29
|
args = {
|
@@ -33,36 +33,36 @@ module Uc3DmpId
|
|
33
33
|
projection_expression: 'modified',
|
34
34
|
scan_index_forward: false
|
35
35
|
}
|
36
|
-
client = client.nil? ? Uc3DmpDynamo::Client.new(
|
36
|
+
client = client.nil? ? Uc3DmpDynamo::Client.new(debug: debug) : client
|
37
37
|
client.query(**args)
|
38
38
|
end
|
39
39
|
|
40
40
|
# Find a DMP based on the contents of the incoming JSON
|
41
41
|
# -------------------------------------------------------------------------
|
42
|
-
def by_json(json:,
|
42
|
+
def by_json(json:, debug: false)
|
43
43
|
json = Validator.parse_json(json: json)&.fetch('dmp', {})
|
44
44
|
raise Uc3DmpIdFinderError, MSG_INVALID_ARGS if json.nil? || (json['PK'].nil? && json['dmp_id'].nil?)
|
45
45
|
|
46
46
|
p_key = json['PK']
|
47
47
|
# Translate the incoming :dmp_id into a PK
|
48
48
|
p_key = Helper.dmp_id_to_pk(json: json.fetch('dmp_id', {})) if p_key.nil?
|
49
|
-
client = client.nil? ? Uc3DmpDynamo::Client.new(
|
49
|
+
client = client.nil? ? Uc3DmpDynamo::Client.new(debug: debug) : client
|
50
50
|
|
51
51
|
# find_by_dmphub_provenance_id -> if no PK and no dmp_id result
|
52
|
-
return by_provenance_identifier(json: json, client: client,
|
52
|
+
return by_provenance_identifier(json: json, client: client, debug: debug) if p_key.nil?
|
53
53
|
|
54
54
|
# find_by_PK
|
55
|
-
by_pk(p_key: p_key, s_key: json['SK'], client: client,
|
55
|
+
by_pk(p_key: p_key, s_key: json['SK'], client: client, debug: debug)
|
56
56
|
end
|
57
57
|
|
58
58
|
# Find the DMP by its PK and SK
|
59
59
|
# -------------------------------------------------------------------------
|
60
|
-
def by_pk(p_key:, s_key: Helper::DMP_LATEST_VERSION, client: nil,
|
60
|
+
def by_pk(p_key:, s_key: Helper::DMP_LATEST_VERSION, client: nil, debug: false)
|
61
61
|
raise Uc3DmpIdFinderError, MSG_MISSING_PK if p_key.nil?
|
62
62
|
|
63
63
|
s_key = Helper::DMP_LATEST_VERSION if s_key.nil? || s_key.strip.empty?
|
64
64
|
|
65
|
-
client = client.nil? ? Uc3DmpDynamo::Client.new(
|
65
|
+
client = client.nil? ? Uc3DmpDynamo::Client.new(debug: debug) : client
|
66
66
|
resp = client.get_item(
|
67
67
|
key: {
|
68
68
|
PK: Helper.append_pk_prefix(dmp: p_key),
|
@@ -71,13 +71,13 @@ module Uc3DmpId
|
|
71
71
|
)
|
72
72
|
return nil if resp.nil? || resp.fetch('dmp', {})['PK'].nil?
|
73
73
|
|
74
|
-
_append_versions(p_key: resp['dmp']['PK'], dmp: resp, client: client)
|
74
|
+
_append_versions(p_key: resp['dmp']['PK'], dmp: resp, client: client, debug: debug)
|
75
75
|
end
|
76
76
|
|
77
77
|
# Attempt to find the DMP item by the provenance system's identifier
|
78
78
|
# -------------------------------------------------------------------------
|
79
79
|
# rubocop:disable Metrics/AbcSize
|
80
|
-
def by_provenance_identifier(json:, client: nil,
|
80
|
+
def by_provenance_identifier(json:, client: nil, debug: false)
|
81
81
|
raise Uc3DmpIdFinderError, MSG_MISSING_PROV_ID if json.nil? || json.fetch('dmp_id', {})['identifier'].nil?
|
82
82
|
|
83
83
|
args = {
|
@@ -90,7 +90,7 @@ module Uc3DmpId
|
|
90
90
|
filter_expression: 'SK = :version',
|
91
91
|
expression_attribute_values: { ':version': KeyHelper::DMP_LATEST_VERSION }
|
92
92
|
}
|
93
|
-
client = client.nil? ? Uc3DmpDynamo::Client.new(
|
93
|
+
client = client.nil? ? Uc3DmpDynamo::Client.new(debug: debug) : client
|
94
94
|
resp = client.query(**args)
|
95
95
|
return resp if resp.nil? || resp['dmp'].nil?
|
96
96
|
|
@@ -103,10 +103,10 @@ module Uc3DmpId
|
|
103
103
|
|
104
104
|
# Build the dmphub_versions array and attach it to the dmp
|
105
105
|
# rubocop:disable Metrics/AbcSize
|
106
|
-
def _append_versions(p_key:, dmp:, client: nil,
|
106
|
+
def _append_versions(p_key:, dmp:, client: nil, debug: false)
|
107
107
|
return dmp if p_key.nil? || !dmp.is_a?(Hash) || dmp['dmp'].nil?
|
108
108
|
|
109
|
-
results = versions(p_key: p_key, client: client,
|
109
|
+
results = versions(p_key: p_key, client: client, debug: debug)
|
110
110
|
return dmp unless results.length > 1
|
111
111
|
|
112
112
|
versions = results.map do |version|
|
data/lib/uc3-dmp-id/updater.rb
CHANGED
data/lib/uc3-dmp-id/validator.rb
CHANGED
data/lib/uc3-dmp-id/version.rb
CHANGED
data/lib/uc3-dmp-id/versioner.rb
CHANGED