sdr-client 0.22.0 → 0.23.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 52457756d6413fcbb3d78c6778e705dd000f73d4bfd9be51b4455c91f861f2cf
4
- data.tar.gz: 2e3fbb925f332ddbf6f70a011f708ed659bb768bf3cea618e3b40cea70b7e1a8
3
+ metadata.gz: 26eecb6134b706eb60ac7623c53576d6ae93f18d7bb9399b8e18c07f04e6da99
4
+ data.tar.gz: 9c2a3d384225a21571ef5618e0bf1606599a44f429a0c81735c8c7f0f04172a3
5
5
  SHA512:
6
- metadata.gz: cdaa5ce7b1c83361d33911f02191d4a34c97c24113ffc01e4594a2300b966ef7b0ff399ea56ee033650be0eb808dd3a363dbf04357c2e124ebfe378d78a69459
7
- data.tar.gz: 238c7ff0047034134d1a3c4421bed157e09b97692ec6d57226edfc2e4e5ef0a7be3a88a39b9c10f816ae6e53dc7f44d10dea7d38a1f7424bb9a6a5c9b3ea7fd2
6
+ metadata.gz: adadb90117ec098b281ff87b03796fd20fed3772fd03e3aa165f8c97b8c05a5510ed7980d9321effa15757cd505bbae8ba30bbdb3dd2c57257b24ce7bf40aa0e
7
+ data.tar.gz: 06ee1f2f6b22e364cfe1fe32059619b527026e7f9dd2dd2e05a6e30865c07946d8e9d1c8b98d1fbb91b68f7867400534a9eb83c3406942e54438947c2eed1ed3
@@ -59,6 +59,7 @@ require 'sdr_client/deposit/file'
59
59
  require 'sdr_client/deposit/file_metadata_builder'
60
60
  require 'sdr_client/deposit/file_set'
61
61
  require 'sdr_client/deposit/request'
62
- require 'sdr_client/deposit/upload_files'
63
62
  require 'sdr_client/deposit/metadata_builder'
64
63
  require 'sdr_client/deposit/process'
64
+ require 'sdr_client/deposit/upload_files'
65
+ require 'sdr_client/deposit/upload_resource'
@@ -6,16 +6,18 @@ module SdrClient
6
6
  module Deposit
7
7
  # The process for doing a deposit from a Cocina Model
8
8
  class ModelProcess
9
- DRO_PATH = '/v1/resources'
10
9
  # @param [Cocina::Model::RequestDRO] request_dro for depositing
11
10
  # @param [Connection] connection the connection to use
12
11
  # @param [Array<String>] files a list of file names to upload
12
+ # @param [Boolean] accession should the accessionWF be started
13
13
  # @param [Logger] logger the logger to use
14
- def initialize(request_dro:, connection:, files: [], logger: Logger.new(STDOUT))
14
+ def initialize(request_dro:, connection:,
15
+ files: [], accession:, logger: Logger.new(STDOUT))
15
16
  @files = files
16
17
  @connection = connection
17
18
  @request_dro = request_dro
18
19
  @logger = logger
20
+ @accession = accession
19
21
  end
20
22
 
21
23
  def run
@@ -27,7 +29,10 @@ module SdrClient
27
29
  connection: connection,
28
30
  mime_types: mime_types).run
29
31
  new_request_dro = with_external_identifiers(upload_responses)
30
- upload_request_dro(new_request_dro.to_json)
32
+ UploadResource.run(accession: @accession,
33
+ metadata: new_request_dro.to_json,
34
+ logger: logger,
35
+ connection: connection)
31
36
  end
32
37
 
33
38
  private
@@ -56,24 +61,6 @@ module SdrClient
56
61
  end
57
62
  end
58
63
 
59
- # @return [Hash<Symbol,String>] the result of the metadata call
60
- def upload_request_dro(request_json)
61
- logger.info("Starting upload metadata: #{request_json}")
62
- response = connection.post(DRO_PATH, request_json, 'Content-Type' => 'application/json')
63
- unexpected_response(response) unless response.status == 201
64
-
65
- logger.info("Response from server: #{response.body}")
66
-
67
- { druid: JSON.parse(response.body)['druid'], background_job: response.headers['Location'] }
68
- end
69
-
70
- def unexpected_response(response)
71
- raise "There was an error with your request: #{response.body}" if response.status == 400
72
- raise 'There was an error with your credentials. Perhaps they have expired?' if response.status == 401
73
-
74
- raise "unexpected response: #{response.status} #{response.body}"
75
- end
76
-
77
64
  # Map of filenames to mimetypes
78
65
  def mime_types
79
66
  @mime_types ||=
@@ -6,7 +6,6 @@ module SdrClient
6
6
  module Deposit
7
7
  # The process for doing a deposit
8
8
  class Process
9
- DRO_PATH = '/v1/resources'
10
9
  # @param [Request] metadata information about the object
11
10
  # @param [Class] grouping_strategy class whose run method groups an array of uploads
12
11
  # @param [String] connection the server connection to use
@@ -38,7 +37,10 @@ module SdrClient
38
37
  logger: logger)
39
38
  request = metadata_builder.with_uploads(upload_responses)
40
39
  model = Cocina::Models.build_request(request.as_json.with_indifferent_access)
41
- upload_metadata(model.to_h)
40
+ UploadResource.run(accession: @accession,
41
+ metadata: JSON.generate(model.to_h),
42
+ logger: logger,
43
+ connection: connection)
42
44
  end
43
45
  # rubocop:enable Metrics/AbcSize
44
46
 
@@ -53,41 +55,6 @@ module SdrClient
53
55
  end
54
56
  end
55
57
 
56
- def accession?
57
- @accession
58
- end
59
-
60
- # @param [Hash<Symbol,String>] the result of the metadata call
61
- # @param [Boolean] accession should the accessionWF be started
62
- # @return [Hash<Symbol,String>] the result of the metadata call
63
- def upload_metadata(metadata)
64
- response = metadata_request(metadata)
65
- unexpected_response(response) unless response.status == 201
66
-
67
- logger.info("Response from server: #{response.body}")
68
-
69
- { druid: JSON.parse(response.body)['druid'], background_job: response.headers['Location'] }
70
- end
71
-
72
- def metadata_request(metadata)
73
- logger.debug("Starting upload metadata: #{metadata}")
74
-
75
- connection.post(path, JSON.generate(metadata), 'Content-Type' => 'application/json')
76
- end
77
-
78
- def path
79
- path = DRO_PATH
80
- path += '?accession=true' if accession?
81
- path
82
- end
83
-
84
- def unexpected_response(response)
85
- raise "There was an error with your request: #{response.body}" if response.status == 400
86
- raise 'There was an error with your credentials. Perhaps they have expired?' if response.status == 401
87
-
88
- raise "unexpected response: #{response.status} #{response.body}"
89
- end
90
-
91
58
  def mime_types
92
59
  @mime_types ||=
93
60
  Hash[
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SdrClient
4
+ module Deposit
5
+ # Uploads a resource (metadata) to the server
6
+ class UploadResource
7
+ DRO_PATH = '/v1/resources'
8
+
9
+ def self.run(accession:, metadata:, logger:, connection:)
10
+ new(accession: accession, metadata: metadata, logger: logger, connection: connection).run
11
+ end
12
+
13
+ # @param [Boolean] accession should the accessionWF be started
14
+ # @param [String] metadata
15
+ # @param [Hash<Symbol,String>] the result of the metadata call
16
+ def initialize(accession:, metadata:, logger:, connection:)
17
+ @accession = accession
18
+ @metadata = metadata
19
+ @logger = logger
20
+ @connection = connection
21
+ end
22
+
23
+ # @param [Hash<Symbol,String>] the result of the metadata call
24
+ # @return [Hash<Symbol,String>] the result of the metadata call
25
+ def run
26
+ response = metadata_request
27
+ unexpected_response(response) unless response.status == 201
28
+
29
+ logger.info("Response from server: #{response.body}")
30
+
31
+ { druid: JSON.parse(response.body)['druid'], background_job: response.headers['Location'] }
32
+ end
33
+
34
+ private
35
+
36
+ attr_reader :metadata, :logger, :connection
37
+
38
+ def metadata_request
39
+ logger.debug("Starting upload metadata: #{metadata}")
40
+
41
+ connection.post(path, metadata, 'Content-Type' => 'application/json')
42
+ end
43
+
44
+ def unexpected_response(response)
45
+ raise "There was an error with your request: #{response.body}" if response.status == 400
46
+ raise 'There was an error with your credentials. Perhaps they have expired?' if response.status == 401
47
+
48
+ raise "unexpected response: #{response.status} #{response.body}"
49
+ end
50
+
51
+ def accession?
52
+ @accession
53
+ end
54
+
55
+ def path
56
+ path = DRO_PATH
57
+ path += '?accession=true' if accession?
58
+ path
59
+ end
60
+ end
61
+ end
62
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SdrClient
4
- VERSION = '0.22.0'
4
+ VERSION = '0.23.0'
5
5
  end
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.22.0
4
+ version: 0.23.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-04-20 00:00:00.000000000 Z
11
+ date: 2020-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -207,6 +207,7 @@ files:
207
207
  - lib/sdr_client/deposit/request.rb
208
208
  - lib/sdr_client/deposit/single_file_grouping_strategy.rb
209
209
  - lib/sdr_client/deposit/upload_files.rb
210
+ - lib/sdr_client/deposit/upload_resource.rb
210
211
  - lib/sdr_client/login.rb
211
212
  - lib/sdr_client/login_prompt.rb
212
213
  - lib/sdr_client/model_deposit.rb