sdr-client 0.38.0 → 0.42.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86f67e8ca2c7149cde2793a9af9a111e886b5baeeb6d1ee5a587836f193df4df
4
- data.tar.gz: 7b4a8b2c31387f0070dd9f75670afb43bbd6b36319ae49b450319bfb2a36c99f
3
+ metadata.gz: 26baa82acd43ce90d9f556409abcfa15be27b50a13d9efd0c8c629414eaa7566
4
+ data.tar.gz: 4a4ba19d9ab9dc09ddd15b24a423fc9b1d768c6dfe8ffdef234a0fa23e096cd6
5
5
  SHA512:
6
- metadata.gz: 9a5cdd8af6d06b4e29e61e3e1471c76354d33013144ef62ea3c9503574bc7b926d3e2a1dfba3d18cb873dc3b6ff86c2632208e8ffc929b7d8fe230eb0228b9e0
7
- data.tar.gz: 8e2fd6e136621e5450b986c2eb3790052d36c411c98fe71174ce8542b61ca99d789bba811b3d7e1f4ed3c8b823f9bb6abb512e1a3fabdb738f57a8f0ded52089
6
+ metadata.gz: c99e5f7db5bc83a58430211991a32304523e5d5eeb55946dcb73d3e865b6c53214d0596f5a76552229ec675bd4a434e74f07a071366a811b913b85a16e0e2b80
7
+ data.tar.gz: 1022bda574d2d0af8c705f11c9cec66f22ca37b063e926aca18e8f3332643fc1c3540624f9778c222806459a1a658439b98d0ac60faac07ed3fa1955f50ea47f
data/README.md CHANGED
@@ -45,3 +45,9 @@ sdr --service-url https://sdr-api-server:3000 deposit --label 'hey there' \
45
45
  --collection 'druid:gh456kw9876' \
46
46
  --source-id 'googlebooks:stanford_12345' image42.jp2 ocr.html
47
47
  ```
48
+
49
+ View the object:
50
+ ```
51
+ sdr --service-url https://sdr-api-server:3000 get druid:bw581ng3176
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/fileset.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
+ ```
data/exe/sdr CHANGED
@@ -19,6 +19,9 @@ end
19
19
  global.order!
20
20
  command = ARGV.shift
21
21
 
22
+ retrieve_options = OptionParser.new do |opts|
23
+ end
24
+
22
25
  deposit_options = OptionParser.new do |opts|
23
26
  opts.banner = "Usage: sdr #{command} [options]"
24
27
  opts.on('--label LABEL', 'The object label') do |label|
@@ -94,6 +97,7 @@ end
94
97
  SdrClient::CLI.help unless command
95
98
 
96
99
  subcommands = {
100
+ 'get' => retrieve_options,
97
101
  'deposit' => deposit_options,
98
102
  'register' => deposit_options,
99
103
  'login' => OptionParser.new
@@ -106,11 +110,10 @@ end
106
110
 
107
111
  subcommands[command].order!
108
112
 
109
- options[:files] = ARGV unless ARGV.empty?
110
113
  options[:url] ||= 'https://sdr-api-prod.stanford.edu'
111
114
 
112
115
  begin
113
- SdrClient::CLI.start(command, options)
116
+ SdrClient::CLI.start(command, options, ARGV)
114
117
  rescue StandardError => e
115
118
  warn "There was a problem making your request:\n\n"
116
119
  warn e.message
data/lib/sdr_client.rb CHANGED
@@ -11,6 +11,7 @@ require 'cocina/models'
11
11
  require 'sdr_client/version'
12
12
  require 'sdr_client/deposit'
13
13
  require 'sdr_client/credentials'
14
+ require 'sdr_client/find'
14
15
  require 'sdr_client/login'
15
16
  require 'sdr_client/login_prompt'
16
17
  require 'sdr_client/cli'
@@ -23,6 +23,9 @@ module SdrClient
23
23
 
24
24
 
25
25
  COMMANDS:
26
+ get
27
+ Retrieve an object from the SDR
28
+
26
29
  deposit
27
30
  Accession an object into the SDR
28
31
 
@@ -34,12 +37,12 @@ module SdrClient
34
37
 
35
38
  HELP
36
39
 
37
- def self.start(command, options)
40
+ def self.start(command, options, arguments = [])
38
41
  case command
42
+ when 'get'
43
+ puts SdrClient::Find.run(arguments.first, **options)
39
44
  when 'deposit', 'register'
40
- display_errors(validate_deposit_options(options))
41
- job_id = SdrClient::Deposit.run(accession: command == 'deposit', **options)
42
- poll_for_job_complete(job_id: job_id, url: options[:url]) # TODO: add an option that skips this
45
+ deposit(command, options, arguments)
43
46
  when 'login'
44
47
  status = SdrClient::Login.run(options)
45
48
  puts status.failure if status.failure?
@@ -51,6 +54,13 @@ module SdrClient
51
54
  exit(1)
52
55
  end
53
56
 
57
+ def self.deposit(command, options, arguments)
58
+ options[:files] = arguments if arguments.present?
59
+ display_errors(validate_deposit_options(options))
60
+ job_id = SdrClient::Deposit.run(accession: command == 'deposit', **options)
61
+ poll_for_job_complete(job_id: job_id, url: options[:url]) # TODO: add an option that skips this
62
+ end
63
+
54
64
  def self.display_errors(errors)
55
65
  return if errors.empty?
56
66
 
@@ -32,7 +32,7 @@ module SdrClient
32
32
  end
33
33
  end
34
34
 
35
- delegate :put, :post, to: :connection
35
+ delegate :put, :post, :get, to: :connection
36
36
 
37
37
  private
38
38
 
@@ -5,7 +5,7 @@ module SdrClient
5
5
  module Files
6
6
  DirectUploadResponse = Struct.new(:id, :key, :checksum, :byte_size, :content_type,
7
7
  :filename, :metadata, :created_at, :direct_upload,
8
- :signed_id, keyword_init: true)
8
+ :signed_id, :service_name, keyword_init: true)
9
9
  end
10
10
  end
11
11
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'logger'
4
+
5
+ module SdrClient
6
+ # The namespace for the "get" command
7
+ module Find
8
+ DRO_PATH = '/v1/resources/%<id>s'
9
+ # @return [String] job id for the background job result
10
+ def self.run(druid, url:, logger: Logger.new(STDOUT))
11
+ connection = Connection.new(url: url)
12
+ path = format(DRO_PATH, id: druid)
13
+ logger.info("Retrieving metadata from: #{path}")
14
+ response = connection.get(path)
15
+ response.body
16
+ end
17
+ end
18
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SdrClient
4
- VERSION = '0.38.0'
4
+ VERSION = '0.42.0'
5
5
  end
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.43.0'
31
+ spec.add_dependency 'cocina-models', '~> 0.46.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.38.0
4
+ version: 0.42.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: 2020-11-20 00:00:00.000000000 Z
11
+ date: 2021-02-01 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.43.0
33
+ version: 0.46.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.43.0
40
+ version: 0.46.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: dry-monads
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -213,6 +213,7 @@ files:
213
213
  - lib/sdr_client/deposit/update_resource.rb
214
214
  - lib/sdr_client/deposit/upload_files.rb
215
215
  - lib/sdr_client/deposit/upload_files_metadata_builder.rb
216
+ - lib/sdr_client/find.rb
216
217
  - lib/sdr_client/login.rb
217
218
  - lib/sdr_client/login_prompt.rb
218
219
  - lib/sdr_client/version.rb