dor-services-client 14.10.0 → 14.12.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: 0617e31e85fd412f80cfce8eecfbc05c3a9e9039158ed7e93bb7a8b5dd73f44f
4
- data.tar.gz: f555839734ce309b4a8d161691b9903f2c4dcafde73b85607c71ba14eba00b93
3
+ metadata.gz: c0c0ec136ed9ea12e5a6c0efc2c2663a5657f49bc2b956ff057586da83c360a5
4
+ data.tar.gz: bb9c3b96fc62eb5456f85cea0e08de070e3831df74230fff530575d4df2b791e
5
5
  SHA512:
6
- metadata.gz: e3b3c31bff0f82e979e23a0a2749122a44a4646f73594b9fa9e7b4c3fcc992908acd8f77f6436a1b530bba8035c5c1649fded38a638b014b6d265b22d28aac1d
7
- data.tar.gz: f34661793f42deeca10cd7abd9ce2420aa1c3a9950cf64342eeaa05bdd6f5b0674defc2c2608fb5476ba43ef1d2bd42765eb16c3f4536783ee46a8343da12590
6
+ metadata.gz: 9f1094a15841a375b9f3542064a4f64b30b1d701e91a2db1b923e056383bdc0ecf35ec1067f9eefcb426e7f3cc7e2acd90d64854e6b59c7458e8f20158c35c7e
7
+ data.tar.gz: 908f23a64f6c4028f2a6eddb1956ccb0b9823195a6b4a667029ce2dabe6103604fc3f489cdf68e4aa8d4eb982eb1c9c2319330803716ec56385326f504a0acd2
data/.circleci/config.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  version: 2.1
2
2
  orbs:
3
- ruby-rails: sul-dlss/ruby-rails@4.1.0
3
+ ruby-rails: sul-dlss/ruby-rails@4.2.1
4
4
  workflows:
5
5
  build:
6
6
  jobs:
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dor-services-client (14.10.0)
4
+ dor-services-client (14.11.0)
5
5
  activesupport (>= 4.2, < 8)
6
6
  cocina-models (~> 0.97.0)
7
7
  deprecation
@@ -44,8 +44,10 @@ GEM
44
44
  super_diff
45
45
  thor
46
46
  zeitwerk (~> 2.1)
47
- commonmarker (0.23.10)
48
- concurrent-ruby (1.2.3)
47
+ commonmarker (1.1.3-arm64-darwin)
48
+ commonmarker (1.1.3-x86_64-darwin)
49
+ commonmarker (1.1.3-x86_64-linux)
50
+ concurrent-ruby (1.3.1)
49
51
  connection_pool (2.4.1)
50
52
  crack (1.0.0)
51
53
  bigdecimal
@@ -93,7 +95,7 @@ GEM
93
95
  jsonpath (1.1.5)
94
96
  multi_json
95
97
  language_server-protocol (3.17.0.3)
96
- minitest (5.23.0)
98
+ minitest (5.23.1)
97
99
  multi_json (1.15.0)
98
100
  mutex_m (0.2.0)
99
101
  net-http (0.4.1)
@@ -104,21 +106,21 @@ GEM
104
106
  racc (~> 1.4)
105
107
  nokogiri (1.16.5-x86_64-linux)
106
108
  racc (~> 1.4)
107
- openapi3_parser (0.9.2)
108
- commonmarker (~> 0.17)
109
+ openapi3_parser (0.10.0)
110
+ commonmarker (>= 1.0)
109
111
  openapi_parser (1.0.0)
110
112
  optimist (3.1.0)
111
113
  parallel (1.24.0)
112
- parser (3.3.1.0)
114
+ parser (3.3.2.0)
113
115
  ast (~> 2.4.1)
114
116
  racc
115
117
  patience_diff (1.2.0)
116
118
  optimist (~> 3.0)
117
119
  public_suffix (5.0.5)
118
- racc (1.7.3)
120
+ racc (1.8.0)
119
121
  rainbow (3.1.1)
120
122
  rake (13.2.1)
121
- regexp_parser (2.9.1)
123
+ regexp_parser (2.9.2)
122
124
  rexml (3.2.8)
123
125
  strscan (>= 3.0.9)
124
126
  rspec (3.13.0)
@@ -134,7 +136,7 @@ GEM
134
136
  diff-lcs (>= 1.2.0, < 2.0)
135
137
  rspec-support (~> 3.13.0)
136
138
  rspec-support (3.13.1)
137
- rubocop (1.63.5)
139
+ rubocop (1.64.1)
138
140
  json (~> 2.3)
139
141
  language_server-protocol (>= 3.17.0)
140
142
  parallel (~> 1.10)
@@ -151,7 +153,7 @@ GEM
151
153
  rubocop (~> 1.41)
152
154
  rubocop-factory_bot (2.25.1)
153
155
  rubocop (~> 1.41)
154
- rubocop-rspec (2.29.2)
156
+ rubocop-rspec (2.30.0)
155
157
  rubocop (~> 1.40)
156
158
  rubocop-capybara (~> 2.17)
157
159
  rubocop-factory_bot (~> 2.22)
@@ -175,11 +177,11 @@ GEM
175
177
  concurrent-ruby (~> 1.0)
176
178
  unicode-display_width (2.5.0)
177
179
  uri (0.13.0)
178
- webmock (3.23.0)
180
+ webmock (3.23.1)
179
181
  addressable (>= 2.8.0)
180
182
  crack (>= 0.3.2)
181
183
  hashdiff (>= 0.4.0, < 2.0.0)
182
- zeitwerk (2.6.14)
184
+ zeitwerk (2.6.15)
183
185
 
184
186
  PLATFORMS
185
187
  arm64-darwin-23
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dor
4
+ module Services
5
+ class Client
6
+ # A tag that indicates the item or collection should be released.
7
+ class ReleaseTag < Dry::Struct
8
+ transform_keys(&:to_sym)
9
+ schema schema.strict
10
+ # Who did this release
11
+ # example: petucket
12
+ attribute? :who, Types::Strict::String
13
+ # What is being released. This item or the whole collection.
14
+ # example: self
15
+ attribute :what, Types::Strict::String.enum('self', 'collection')
16
+ # When did this action happen
17
+ attribute? :date, Types::Params::DateTime
18
+ # What platform is it released to
19
+ # example: Searchworks
20
+ attribute? :to, Types::Strict::String
21
+ attribute :release, Types::Strict::Bool.default(false)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -13,7 +13,7 @@ module Dor
13
13
 
14
14
  # Create a release tag for an object
15
15
  #
16
- # @param tag [Cocina::Models::ReleaseTag]
16
+ # @param tag [ReleaseTag]
17
17
  # @return [Boolean] true if successful
18
18
  # @raise [NotFoundResponse] when the response is a 404 (object not found)
19
19
  # @raise [UnexpectedResponse] if the request is unsuccessful.
@@ -32,7 +32,7 @@ module Dor
32
32
  #
33
33
  # @raise [NotFoundResponse] when the response is a 404 (object not found)
34
34
  # @raise [UnexpectedResponse] if the request is unsuccessful.
35
- # @return [Array<Cocina::Models::ReleaseTag>]
35
+ # @return [Array<ReleaseTag>]
36
36
  def list
37
37
  resp = connection.get do |req|
38
38
  req.url "#{api_version}/objects/#{object_identifier}/release_tags"
@@ -40,7 +40,7 @@ module Dor
40
40
 
41
41
  raise_exception_based_on_response!(resp, object_identifier) unless resp.success?
42
42
 
43
- JSON.parse(resp.body).map { |tag_data| Cocina::Models::ReleaseTag.new(tag_data) }
43
+ JSON.parse(resp.body).map { |tag_data| ReleaseTag.new(tag_data) }
44
44
  end
45
45
 
46
46
  private
@@ -3,7 +3,7 @@
3
3
  module Dor
4
4
  module Services
5
5
  class Client
6
- VERSION = '14.10.0'
6
+ VERSION = '14.12.0'
7
7
  end
8
8
  end
9
9
  end
@@ -12,16 +12,24 @@ module Dor
12
12
  end
13
13
 
14
14
  # Initializes a new workspace
15
- # @param source [String] the path to the object
15
+ # @param source [String] the path to the object (optional)
16
+ # @param content [Boolean] determines if the content directory should be created (defaults to false)
17
+ # @param metadata [Boolean] determines if the metadata directory should be created (defaults to false)
16
18
  # @raise [UnexpectedResponse] if the request is unsuccessful.
17
- # @return nil
18
- def create(source:)
19
+ # @return [String] the path to the directory created
20
+ # rubocop:disable Metrics/AbcSize
21
+ def create(source: nil, content: false, metadata: false)
19
22
  resp = connection.post do |req|
20
23
  req.url workspace_path
21
- req.params['source'] = source
24
+ req.params['source'] = source if source
25
+ req.params['content'] = content
26
+ req.params['metadata'] = metadata
22
27
  end
28
+ return JSON.parse(resp.body)['path'] if resp.success?
29
+
23
30
  raise_exception_based_on_response!(resp, object_identifier) unless resp.success?
24
31
  end
32
+ # rubocop:enable Metrics/AbcSize
25
33
 
26
34
  # Cleans up a workspace
27
35
  # @raise [NotFoundResponse] when the response is a 404 (object not found)
@@ -78,6 +78,10 @@ module Dor
78
78
  # Error that is raised when the remote server returns a 400 Bad Request; apps should not retry the request
79
79
  class BadRequestError < UnexpectedResponse; end
80
80
 
81
+ module Types
82
+ include Dry.Types()
83
+ end
84
+
81
85
  # @param object_identifier [String] the pid for the object
82
86
  # @raise [ArgumentError] when `object_identifier` is `nil`
83
87
  # @return [Dor::Services::Client::Object] an instance of the `Client::Object` class
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dor-services-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 14.10.0
4
+ version: 14.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2024-05-17 00:00:00.000000000 Z
12
+ date: 2024-06-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -249,6 +249,7 @@ files:
249
249
  - lib/dor/services/client/object.rb
250
250
  - lib/dor/services/client/object_version.rb
251
251
  - lib/dor/services/client/objects.rb
252
+ - lib/dor/services/client/release_tag.rb
252
253
  - lib/dor/services/client/release_tags.rb
253
254
  - lib/dor/services/client/response_error_formatter.rb
254
255
  - lib/dor/services/client/transfer.rb