sdr-client 0.55.1 → 0.56.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|