sdr-client 0.55.1 → 0.56.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/.rubocop.yml +4 -0
- data/.rubocop_todo.yml +19 -5
- data/README.md +5 -0
- data/exe/sdr +3 -5
- data/lib/sdr_client/cli.rb +5 -0
- data/lib/sdr_client/deposit.rb +2 -0
- data/lib/sdr_client/deposit/create_resource.rb +3 -1
- data/lib/sdr_client/deposit/file.rb +4 -4
- data/lib/sdr_client/deposit/request.rb +14 -3
- data/lib/sdr_client/deposit/update_resource.rb +3 -1
- data/lib/sdr_client/version.rb +1 -1
- data/sdr-client.gemspec +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 335b17d92fb6fc1987038e7837b751ca4c918b4bfb3510e6738e763191416aa4
|
|
4
|
+
data.tar.gz: db5ef06226d88fdab05db520a5402ce3606e119147386d7fcc1e52027bb0f1b0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: da2726c5a061d58185d32ba50d7a17073a8ad35cb4db9469875895a60374fbab96d07df007c684078589ba3efb85d2b6590a60de6cd3164fd41d26746e71392c
|
|
7
|
+
data.tar.gz: e1a60e9dec9cb2d6b32788f87da85f9667b00cb4b2a6ec592c83acff1508eb6f6842ed8befc2915714e822e8d8190320a85e397c50f751a114db546cfb640eff
|
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
|
@@ -1,19 +1,33 @@
|
|
|
1
1
|
# This configuration was generated by
|
|
2
|
-
# `rubocop --auto-gen-config`
|
|
3
|
-
# on 2021-
|
|
2
|
+
# `rubocop --auto-gen-config --auto-gen-only-exclude`
|
|
3
|
+
# on 2021-04-15 12:18:21 -0700 using RuboCop version 0.79.0.
|
|
4
4
|
# The point is for the user to remove these configuration records
|
|
5
5
|
# one by one as the offenses are removed from the code base.
|
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
|
8
8
|
|
|
9
9
|
# Offense count: 1
|
|
10
|
+
# Configuration parameters: Max.
|
|
10
11
|
Metrics/AbcSize:
|
|
11
|
-
|
|
12
|
+
Exclude:
|
|
13
|
+
- 'lib/sdr_client/deposit/model_process.rb'
|
|
14
|
+
|
|
15
|
+
# Offense count: 1
|
|
16
|
+
# Configuration parameters: Max.
|
|
17
|
+
Metrics/CyclomaticComplexity:
|
|
18
|
+
Exclude:
|
|
19
|
+
- 'lib/sdr_client/cli.rb'
|
|
12
20
|
|
|
13
21
|
# Offense count: 9
|
|
14
|
-
# Configuration parameters: CountComments, ExcludedMethods.
|
|
22
|
+
# Configuration parameters: CountComments, Max, ExcludedMethods.
|
|
15
23
|
Metrics/MethodLength:
|
|
16
|
-
|
|
24
|
+
Exclude:
|
|
25
|
+
- 'lib/sdr_client/cli.rb'
|
|
26
|
+
- 'lib/sdr_client/deposit/file.rb'
|
|
27
|
+
- 'lib/sdr_client/deposit/model_process.rb'
|
|
28
|
+
- 'lib/sdr_client/deposit/process.rb'
|
|
29
|
+
- 'lib/sdr_client/deposit/request.rb'
|
|
30
|
+
- 'lib/sdr_client/login.rb'
|
|
17
31
|
|
|
18
32
|
# Offense count: 231
|
|
19
33
|
# Cop supports --auto-correct.
|
data/README.md
CHANGED
|
@@ -51,3 +51,8 @@ View the object:
|
|
|
51
51
|
sdr --service-url https://sdr-api-server:3000 get druid:bw581ng3176
|
|
52
52
|
{"type":"http://cocina.sul.stanford.edu/models/document.jsonld","externalIdentifier":"druid:bw581ng3176","label":"Something something better title","version":1,"access":{"access":"stanford","copyright":"This work is copyrighted by the creator.","download":"stanford","useAndReproductionStatement":"This document is available only to the Stanford faculty, staff and student community."},"administrative":{"hasAdminPolicy":"druid:zx485kb6348"},"description":{"title":[{"value":"Something something better title"}],"contributor":[{"name":[{"value":"Hodge, Amy"}],"type":"person","role":[{"value":"Author"},{"value":"author","uri":"http://id.loc.gov/vocabulary/relators/aut","source":{"code":"marcrelator","uri":"http://id.loc.gov/vocabulary/relators/"}},{"value":"Creator"}]}],"form":[{"structuredValue":[{"value":"Text","type":"type"},{"value":"Report","type":"subtype"}],"type":"resource type","source":{"value":"Stanford self-deposit resource types"}},{"value":"reports","type":"genre","uri":"http://vocab.getty.edu/aat/300027267","source":{"code":"aat"}},{"value":"text","type":"resource type","source":{"value":"MODS resource types"}}],"note":[{"value":";alkdfjlsadkjf;l","type":"summary"},{"value":"amyhodge@stanford.edu","type":"contact","displayLabel":"Contact"}],"subject":[{"value":"lkfj","type":"topic"},{"value":";kfj","type":"topic"},{"value":"fjwelkb","type":"topic"}]},"identification":{"sourceId":"hydrus:20"},"structural":{"contains":[{"type":"http://cocina.sul.stanford.edu/models/resources/file.jsonld","externalIdentifier":"bw581ng3176_1","label":"Test file","version":1,"structural":{"contains":[{"type":"http://cocina.sul.stanford.edu/models/file.jsonld","externalIdentifier":"druid:bw581ng3176/test.txt","label":"test.txt","filename":"test.txt","size":11,"version":1,"hasMimeType":"text/plain","hasMessageDigests":[{"type":"sha1","digest":"5d39343e4bb48abd97f759828282f5ebbac56c5e"},{"type":"md5","digest":"63b8812b0c05722a9d6c51cbd2bfb54b"}],"access":{"access":"world","download":"world"},"administrative":{"sdrPreserve":true,"shelve":true}}]}}]}}
|
|
53
53
|
```
|
|
54
|
+
|
|
55
|
+
Display version of sdr-client:
|
|
56
|
+
```
|
|
57
|
+
sdr version
|
|
58
|
+
```
|
data/exe/sdr
CHANGED
|
@@ -19,9 +19,6 @@ end
|
|
|
19
19
|
global.order!
|
|
20
20
|
command = ARGV.shift
|
|
21
21
|
|
|
22
|
-
retrieve_options = OptionParser.new do |opts|
|
|
23
|
-
end
|
|
24
|
-
|
|
25
22
|
deposit_options = OptionParser.new do |opts|
|
|
26
23
|
opts.banner = "Usage: sdr #{command} [options]"
|
|
27
24
|
opts.on('--label LABEL', 'The object label') do |label|
|
|
@@ -97,10 +94,11 @@ end
|
|
|
97
94
|
SdrClient::CLI.help unless command
|
|
98
95
|
|
|
99
96
|
subcommands = {
|
|
100
|
-
'get' =>
|
|
97
|
+
'get' => OptionParser.new,
|
|
101
98
|
'deposit' => deposit_options,
|
|
102
99
|
'register' => deposit_options,
|
|
103
|
-
'login' => OptionParser.new
|
|
100
|
+
'login' => OptionParser.new,
|
|
101
|
+
'version' => OptionParser.new
|
|
104
102
|
}
|
|
105
103
|
|
|
106
104
|
unless subcommands.key?(command)
|
data/lib/sdr_client/cli.rb
CHANGED
|
@@ -35,6 +35,9 @@ module SdrClient
|
|
|
35
35
|
login
|
|
36
36
|
Will prompt for email & password and exchange it for an login token, which it saves in ~/.sdr/token
|
|
37
37
|
|
|
38
|
+
version
|
|
39
|
+
Display the sdr-client version
|
|
40
|
+
|
|
38
41
|
HELP
|
|
39
42
|
|
|
40
43
|
def self.start(command, options, arguments = [])
|
|
@@ -46,6 +49,8 @@ module SdrClient
|
|
|
46
49
|
when 'login'
|
|
47
50
|
status = SdrClient::Login.run(options)
|
|
48
51
|
puts status.failure if status.failure?
|
|
52
|
+
when 'version'
|
|
53
|
+
puts SdrClient::VERSION
|
|
49
54
|
else
|
|
50
55
|
raise "Unknown command #{command}"
|
|
51
56
|
end
|
data/lib/sdr_client/deposit.rb
CHANGED
|
@@ -21,6 +21,7 @@ module SdrClient
|
|
|
21
21
|
catkey: nil,
|
|
22
22
|
embargo_release_date: nil,
|
|
23
23
|
embargo_access: 'world',
|
|
24
|
+
embargo_download: 'world',
|
|
24
25
|
source_id:,
|
|
25
26
|
url:,
|
|
26
27
|
files: [],
|
|
@@ -41,6 +42,7 @@ module SdrClient
|
|
|
41
42
|
catkey: catkey,
|
|
42
43
|
embargo_release_date: embargo_release_date,
|
|
43
44
|
embargo_access: embargo_access,
|
|
45
|
+
embargo_download: embargo_download,
|
|
44
46
|
viewing_direction: viewing_direction,
|
|
45
47
|
files_metadata: augmented_metadata)
|
|
46
48
|
connection = Connection.new(url: url)
|
|
@@ -39,7 +39,9 @@ module SdrClient
|
|
|
39
39
|
json = metadata.to_json
|
|
40
40
|
logger.debug("Starting upload metadata: #{json}")
|
|
41
41
|
|
|
42
|
-
connection.post(path, json,
|
|
42
|
+
connection.post(path, json,
|
|
43
|
+
'Content-Type' => 'application/json',
|
|
44
|
+
'X-Cocina-Models-Version' => Cocina::Models::VERSION)
|
|
43
45
|
end
|
|
44
46
|
|
|
45
47
|
def accession?
|
|
@@ -6,13 +6,14 @@ module SdrClient
|
|
|
6
6
|
class File
|
|
7
7
|
# rubocop:disable Metrics/ParameterLists
|
|
8
8
|
def initialize(external_identifier:, label:, filename:,
|
|
9
|
-
access: '
|
|
9
|
+
access: 'dark', download: 'none', preserve: true, shelve: true,
|
|
10
10
|
publish: true, mime_type: nil, md5: nil, sha1: nil,
|
|
11
11
|
use: nil)
|
|
12
12
|
@external_identifier = external_identifier
|
|
13
13
|
@label = label
|
|
14
14
|
@filename = filename
|
|
15
15
|
@access = access
|
|
16
|
+
@download = download
|
|
16
17
|
@preserve = preserve
|
|
17
18
|
@shelve = shelve
|
|
18
19
|
@publish = publish
|
|
@@ -23,7 +24,6 @@ module SdrClient
|
|
|
23
24
|
end
|
|
24
25
|
# rubocop:enable Metrics/ParameterLists
|
|
25
26
|
|
|
26
|
-
# rubocop:disable Metrics/MethodLength
|
|
27
27
|
def as_json
|
|
28
28
|
{
|
|
29
29
|
"type": 'http://cocina.sul.stanford.edu/models/file.jsonld',
|
|
@@ -31,7 +31,8 @@ module SdrClient
|
|
|
31
31
|
filename: @filename,
|
|
32
32
|
externalIdentifier: @external_identifier,
|
|
33
33
|
access: {
|
|
34
|
-
access: @access
|
|
34
|
+
access: @access,
|
|
35
|
+
download: @download
|
|
35
36
|
},
|
|
36
37
|
administrative: {
|
|
37
38
|
sdrPreserve: @preserve,
|
|
@@ -45,7 +46,6 @@ module SdrClient
|
|
|
45
46
|
json['use'] = @use if @use
|
|
46
47
|
end
|
|
47
48
|
end
|
|
48
|
-
# rubocop:enable Metrics/MethodLength
|
|
49
49
|
|
|
50
50
|
private
|
|
51
51
|
|
|
@@ -12,6 +12,7 @@ module SdrClient
|
|
|
12
12
|
# @param [Hash<String, Hash<String, String>>] files_metadata file name, hash of additional file metadata
|
|
13
13
|
# Additional metadata includes access, preserve, shelve, publish, md5, sha1
|
|
14
14
|
# rubocop:disable Metrics/ParameterLists
|
|
15
|
+
# rubocop:disable Metrics/AbcSize
|
|
15
16
|
def initialize(label: nil,
|
|
16
17
|
access: 'dark',
|
|
17
18
|
download: 'none',
|
|
@@ -23,6 +24,7 @@ module SdrClient
|
|
|
23
24
|
catkey: nil,
|
|
24
25
|
embargo_release_date: nil,
|
|
25
26
|
embargo_access: 'world',
|
|
27
|
+
embargo_download: 'world',
|
|
26
28
|
type: 'http://cocina.sul.stanford.edu/models/object.jsonld',
|
|
27
29
|
viewing_direction: nil,
|
|
28
30
|
file_sets: [],
|
|
@@ -34,6 +36,7 @@ module SdrClient
|
|
|
34
36
|
@catkey = catkey
|
|
35
37
|
@embargo_release_date = embargo_release_date
|
|
36
38
|
@embargo_access = embargo_access
|
|
39
|
+
@embargo_download = embargo_download
|
|
37
40
|
@access = access
|
|
38
41
|
@download = download
|
|
39
42
|
@use_statement = use_statement
|
|
@@ -44,6 +47,7 @@ module SdrClient
|
|
|
44
47
|
@viewing_direction = viewing_direction
|
|
45
48
|
end
|
|
46
49
|
# rubocop:enable Metrics/ParameterLists
|
|
50
|
+
# rubocop:enable Metrics/AbcSize
|
|
47
51
|
|
|
48
52
|
def as_json
|
|
49
53
|
{
|
|
@@ -58,6 +62,7 @@ module SdrClient
|
|
|
58
62
|
end
|
|
59
63
|
|
|
60
64
|
# @return [Request] a clone of this request with the file_sets added
|
|
65
|
+
# rubocop:disable Metrics/AbcSize
|
|
61
66
|
def with_file_sets(file_sets)
|
|
62
67
|
Request.new(label: label,
|
|
63
68
|
access: access,
|
|
@@ -69,17 +74,22 @@ module SdrClient
|
|
|
69
74
|
catkey: catkey,
|
|
70
75
|
embargo_release_date: embargo_release_date,
|
|
71
76
|
embargo_access: embargo_access,
|
|
77
|
+
embargo_download: embargo_download,
|
|
72
78
|
type: type,
|
|
73
79
|
use_statement: use_statement,
|
|
74
80
|
viewing_direction: viewing_direction,
|
|
75
81
|
file_sets: file_sets,
|
|
76
82
|
files_metadata: files_metadata)
|
|
77
83
|
end
|
|
84
|
+
# rubocop:enable Metrics/AbcSize
|
|
78
85
|
|
|
79
86
|
# @param [String] filename
|
|
80
87
|
# @return [Hash] the metadata for the file
|
|
81
88
|
def for(filename)
|
|
82
|
-
files_metadata.fetch(filename, {})
|
|
89
|
+
metadata = files_metadata.fetch(filename, {}).with_indifferent_access
|
|
90
|
+
metadata[:access] = access unless metadata.key?(:access)
|
|
91
|
+
metadata[:download] = download unless metadata.key?(:download)
|
|
92
|
+
metadata
|
|
83
93
|
end
|
|
84
94
|
|
|
85
95
|
attr_reader :type
|
|
@@ -87,7 +97,7 @@ module SdrClient
|
|
|
87
97
|
private
|
|
88
98
|
|
|
89
99
|
attr_reader :access, :label, :file_sets, :source_id, :catkey, :apo, :collection,
|
|
90
|
-
:files_metadata, :embargo_release_date, :embargo_access,
|
|
100
|
+
:files_metadata, :embargo_release_date, :embargo_access, :embargo_download,
|
|
91
101
|
:viewing_direction, :use_statement, :copyright, :download
|
|
92
102
|
|
|
93
103
|
def administrative
|
|
@@ -121,7 +131,8 @@ module SdrClient
|
|
|
121
131
|
if embargo_release_date
|
|
122
132
|
json[:embargo] = {
|
|
123
133
|
releaseDate: embargo_release_date.strftime('%FT%T%:z'),
|
|
124
|
-
access: embargo_access
|
|
134
|
+
access: embargo_access,
|
|
135
|
+
download: embargo_download
|
|
125
136
|
}
|
|
126
137
|
end
|
|
127
138
|
end
|
|
@@ -37,7 +37,9 @@ module SdrClient
|
|
|
37
37
|
json = metadata.to_json
|
|
38
38
|
logger.debug("Starting upload metadata: #{json}")
|
|
39
39
|
|
|
40
|
-
connection.put(path(metadata), json,
|
|
40
|
+
connection.put(path(metadata), json,
|
|
41
|
+
'Content-Type' => 'application/json',
|
|
42
|
+
'X-Cocina-Models-Version' => Cocina::Models::VERSION)
|
|
41
43
|
end
|
|
42
44
|
|
|
43
45
|
def path(metadata)
|
data/lib/sdr_client/version.rb
CHANGED
data/sdr-client.gemspec
CHANGED
|
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
|
|
|
28
28
|
spec.require_paths = ['lib']
|
|
29
29
|
|
|
30
30
|
spec.add_dependency 'activesupport'
|
|
31
|
-
spec.add_dependency 'cocina-models', '~> 0.
|
|
31
|
+
spec.add_dependency 'cocina-models', '~> 0.59.0'
|
|
32
32
|
spec.add_dependency 'dry-monads'
|
|
33
33
|
spec.add_dependency 'faraday', '>= 0.16'
|
|
34
34
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sdr-client
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.56.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Justin Coyne
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-04-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 0.
|
|
33
|
+
version: 0.59.0
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 0.
|
|
40
|
+
version: 0.59.0
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: dry-monads
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -239,7 +239,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
239
239
|
- !ruby/object:Gem::Version
|
|
240
240
|
version: '0'
|
|
241
241
|
requirements: []
|
|
242
|
-
rubygems_version: 3.
|
|
242
|
+
rubygems_version: 3.0.3
|
|
243
243
|
signing_key:
|
|
244
244
|
specification_version: 4
|
|
245
245
|
summary: The CLI for https://github.com/sul-dlss/sdr-api
|