sdr-client 0.3.1 → 0.4.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/README.md +4 -0
- data/lib/sdr_client/deposit.rb +1 -0
- data/lib/sdr_client/deposit/default_file_set_builder.rb +18 -0
- data/lib/sdr_client/deposit/process.rb +6 -3
- data/lib/sdr_client/deposit/request.rb +2 -12
- data/lib/sdr_client/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1d76c1422877b6b5f25f0a1cb46641e32771496771576f8f7c8fd2697c14b0e
|
4
|
+
data.tar.gz: eb116e73a114a3966254a0996c5d843fc960e1454146214ca68fae11eff89bda
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: acf219c807f4f22f87437f779cf4d3ab2bb8091bc810a616146a302a9e2bab4b5be99685c91ea072056344a59b5b0f37e9ed5008105d836078d1b70032720c75
|
7
|
+
data.tar.gz: b6ec07336e2014a6fbf02470c08649c426384a51c40ee32a164f29c96ab75cd2057615ee5ee8081f7a70f406f794fed6c100fb93aba7848d629e8933fa91f589
|
data/README.md
CHANGED
data/lib/sdr_client/deposit.rb
CHANGED
@@ -23,6 +23,7 @@ module SdrClient
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
require 'json'
|
26
|
+
require 'sdr_client/deposit/default_file_set_builder'
|
26
27
|
require 'sdr_client/deposit/files/direct_upload_request'
|
27
28
|
require 'sdr_client/deposit/files/direct_upload_response'
|
28
29
|
require 'sdr_client/deposit/file'
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module SdrClient
|
4
|
+
module Deposit
|
5
|
+
# This strategy is for building one file set per uploaded file
|
6
|
+
class DefaultFileSetBuilder
|
7
|
+
# @return [Request] request The initial request
|
8
|
+
# @param [Array<SdrClient::Deposit::Files::DirectUploadResponse>] uploads the uploaded files to attach.
|
9
|
+
# @return [Request] a clone of this request with the uploads added
|
10
|
+
def self.run(request:, uploads: [])
|
11
|
+
file_sets = uploads.each_with_index.map do |upload, i|
|
12
|
+
FileSet.new(uploads: [upload], label: "Object #{i + 1}")
|
13
|
+
end
|
14
|
+
request.with_file_sets(file_sets)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -9,16 +9,19 @@ module SdrClient
|
|
9
9
|
BLOB_PATH = '/v1/direct_uploads'
|
10
10
|
DRO_PATH = '/v1/resources'
|
11
11
|
# @param [Request] metadata information about the object
|
12
|
+
# @param [#build] file_set_builder a strategy for constructing FileSets
|
12
13
|
# @param [String] url the server to send to
|
13
14
|
# @param [String] token the bearer auth token for the server
|
14
15
|
# @param [Array<String>] files a list of file names to upload
|
15
16
|
# @param [Logger] logger the logger to use
|
16
|
-
def initialize(metadata:,
|
17
|
+
def initialize(metadata:, file_set_builder: DefaultFileSetBuilder, url:,
|
18
|
+
token:, files: [], logger: Logger.new(STDOUT))
|
17
19
|
@files = files
|
18
20
|
@url = url
|
19
21
|
@token = token
|
20
22
|
@metadata = metadata
|
21
23
|
@logger = logger
|
24
|
+
@file_set_builder = file_set_builder
|
22
25
|
end
|
23
26
|
|
24
27
|
def run
|
@@ -26,13 +29,13 @@ module SdrClient
|
|
26
29
|
file_metadata = collect_file_metadata
|
27
30
|
upload_responses = upload_file_metadata(file_metadata)
|
28
31
|
upload_files(upload_responses)
|
29
|
-
request =
|
32
|
+
request = file_set_builder.run(request: metadata, uploads: upload_responses.values)
|
30
33
|
upload_metadata(request.as_json)
|
31
34
|
end
|
32
35
|
|
33
36
|
private
|
34
37
|
|
35
|
-
attr_reader :metadata, :files, :url, :token, :logger
|
38
|
+
attr_reader :metadata, :files, :url, :token, :logger, :file_set_builder
|
36
39
|
|
37
40
|
def check_files_exist
|
38
41
|
logger.info('checking to see if files exist')
|
@@ -35,13 +35,8 @@ module SdrClient
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
-
# @
|
39
|
-
|
40
|
-
def with_uploads(uploads)
|
41
|
-
file_sets = uploads.each_with_index.map do |upload, i|
|
42
|
-
FileSet.new(uploads: [upload], label: "Object #{i + 1}")
|
43
|
-
end
|
44
|
-
|
38
|
+
# @return [Request] a clone of this request with the file_sets added
|
39
|
+
def with_file_sets(file_sets)
|
45
40
|
Request.new(label: label,
|
46
41
|
apo: apo,
|
47
42
|
collection: collection,
|
@@ -51,11 +46,6 @@ module SdrClient
|
|
51
46
|
file_sets: file_sets)
|
52
47
|
end
|
53
48
|
|
54
|
-
# In this case there is a 1-1 mapping between Files and FileSets,
|
55
|
-
# but this doesn't always have to be the case. We could change this in the
|
56
|
-
# future so that we have one FileSet that has an Image and its OCR file.
|
57
|
-
def add_uploads_each_as_resource(uploads); end
|
58
|
-
|
59
49
|
private
|
60
50
|
|
61
51
|
attr_reader :label, :file_sets, :source_id, :catkey, :apo, :collection, :type
|
data/lib/sdr_client/version.rb
CHANGED
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.4.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-01-
|
11
|
+
date: 2020-01-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-monads
|
@@ -162,6 +162,7 @@ files:
|
|
162
162
|
- lib/sdr_client/cli.rb
|
163
163
|
- lib/sdr_client/credentials.rb
|
164
164
|
- lib/sdr_client/deposit.rb
|
165
|
+
- lib/sdr_client/deposit/default_file_set_builder.rb
|
165
166
|
- lib/sdr_client/deposit/file.rb
|
166
167
|
- lib/sdr_client/deposit/file_set.rb
|
167
168
|
- lib/sdr_client/deposit/files/direct_upload_request.rb
|