dor-services-client 14.4.0 → 14.6.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: fd7841c236c50b58fae7790f830fe16ccdf406046be4739d758bba74dd0155aa
4
- data.tar.gz: 7e6f87de10e9112ce4301ead05ca56115ecc7c956d347f3447856f7afe29882f
3
+ metadata.gz: f174f312d81c83f4eb16c9d833623fb69b8a010f4afbca1b57018a38819c10f2
4
+ data.tar.gz: 7230f8d8093bc586cb5a083b7b292c12d47fbba648e1999f3c697bcb7d56a216
5
5
  SHA512:
6
- metadata.gz: ea9ca5c81c500d8782f89b7ec7a8efc615116e4c98d306ee6c8d16d3fd144d6b36b1a162a266adf681c2a91aa48f5bc842dbccbcfe6e334b38641b45d7524240
7
- data.tar.gz: 20ae566854c4f8eb4f95a6861f6c89d0d4594d3590d979fda9774f2a06d7c8dc1b8be5ddaa016479e54759091bba5c14da761abb48e7c01d6246990d9d395837
6
+ metadata.gz: d7d5cffdeb8ce04d90055bce6a9e5a751dcf7eaef4483e7f206eb10a68eecd3c3519d2295b470e006b88d1d2b2bbc8ae47fdaae8ab45e28d403bdc9b68615c28
7
+ data.tar.gz: dbcf6972c5b6dacd76407eb6a8573377ea0372a0447f9c834a5a1803b6a9cc6d0d2d25f83b90cec6ec02e9f7ddd6648e51d4175ad7e62ef4bc48fead47f7daa6
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dor-services-client (14.4.0)
4
+ dor-services-client (14.6.0)
5
5
  activesupport (>= 4.2, < 8)
6
- cocina-models (~> 0.95.1)
6
+ cocina-models (~> 0.96.0)
7
7
  deprecation
8
8
  faraday (~> 2.0)
9
9
  faraday-retry
@@ -29,7 +29,7 @@ GEM
29
29
  base64 (0.2.0)
30
30
  bigdecimal (3.1.7)
31
31
  byebug (11.1.3)
32
- cocina-models (0.95.1)
32
+ cocina-models (0.96.0)
33
33
  activesupport
34
34
  deprecation
35
35
  dry-struct (~> 1.0)
@@ -151,10 +151,13 @@ GEM
151
151
  rubocop (~> 1.41)
152
152
  rubocop-factory_bot (2.25.1)
153
153
  rubocop (~> 1.41)
154
- rubocop-rspec (2.27.1)
154
+ rubocop-rspec (2.28.0)
155
155
  rubocop (~> 1.40)
156
156
  rubocop-capybara (~> 2.17)
157
157
  rubocop-factory_bot (~> 2.22)
158
+ rubocop-rspec_rails (~> 2.28)
159
+ rubocop-rspec_rails (2.28.2)
160
+ rubocop (~> 1.40)
158
161
  ruby-progressbar (1.13.0)
159
162
  simplecov (0.22.0)
160
163
  docile (~> 1.1)
data/README.md CHANGED
@@ -120,9 +120,12 @@ object_client.notify_goobi
120
120
  # Manage versions
121
121
  object_client.version.inventory
122
122
  object_client.version.current
123
+ # Returns a struct containing the status.
124
+ # Status includes whether the object is open, assembling, accessioning, or closeable.
125
+ object_client.version.status
123
126
  object_client.version.openable?
124
127
  # see dor-services-app openapi.yml for optional params
125
- object_client.version.open(description: 'Changed title', significance: 'minor')
128
+ object_client.version.open(description: 'Changed title')
126
129
  # see dor-services-app openapi.yml for optional params
127
130
  object_client.version.close
128
131
 
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.required_ruby_version = '>= 3.0', '< 4'
26
26
 
27
27
  spec.add_dependency 'activesupport', '>= 4.2', '< 8'
28
- spec.add_dependency 'cocina-models', '~> 0.95.1'
28
+ spec.add_dependency 'cocina-models', '~> 0.96.0'
29
29
  spec.add_dependency 'deprecation', '>= 0'
30
30
  spec.add_dependency 'faraday', '~> 2.0'
31
31
  spec.add_dependency 'faraday-retry'
@@ -15,7 +15,6 @@ module Dor
15
15
 
16
16
  # Start accession on an object (start specified workflow, assemblyWF by default, and version if needed)
17
17
  # @param params [Hash<Symbol,String>] optional parameter hash
18
- # @option params [String] :significance set significance (major/minor/patch) of version change - required
19
18
  # @option params [String] :description set description of version change - required
20
19
  # @option params [String] :opening_user_name add opening username to the event - optional
21
20
  # @option params [String] :workflow the workflow to start - defaults to 'assemblyWF'
@@ -6,6 +6,31 @@ module Dor
6
6
  # API calls that are about versions
7
7
  class ObjectVersion < VersionedService
8
8
  Version = Struct.new(:versionId, :tag, :message, keyword_init: true)
9
+ VersionStatus = Struct.new(:versionId, :open, :openable, :assembling, :accessioning, :closeable, keyword_init: true) do
10
+ def open?
11
+ open
12
+ end
13
+
14
+ def openable?
15
+ openable
16
+ end
17
+
18
+ def assembling?
19
+ assembling
20
+ end
21
+
22
+ def accessioning?
23
+ accessioning
24
+ end
25
+
26
+ def closed?
27
+ !open
28
+ end
29
+
30
+ def closeable?
31
+ closeable
32
+ end
33
+ end
9
34
 
10
35
  # @param object_identifier [String] the pid for the object
11
36
  def initialize(connection:, version:, object_identifier:)
@@ -51,7 +76,6 @@ module Dor
51
76
 
52
77
  # Open new version for an object
53
78
  # @param description [String] a description of the object version being opened - required
54
- # @param significance [String] 'major' 'minor' or 'admin' - required
55
79
  # @param opening_user_name [String] sunetid - defaults to nil
56
80
  # @param assume_accessioned [Boolean] if true, does not check whether object has been accessioned; defaults to false
57
81
  # @raise [NotFoundResponse] when the response is a 404 (object not found)
@@ -70,7 +94,6 @@ module Dor
70
94
 
71
95
  # Close current version for an object
72
96
  # @param description [String] (optional) - a description of the object version being opened
73
- # @param significance [String] (optional) - 'major' 'minor' or 'admin'
74
97
  # @param user_name [String] (optional) - sunetid
75
98
  # @param start_accession [Boolean] (optional) - whether to start accessioning workflow; defaults to true
76
99
  # @raise [NotFoundResponse] when the response is a 404 (object not found)
@@ -97,6 +120,17 @@ module Dor
97
120
  JSON.parse(resp.body).fetch('versions').map { |params| Version.new(**params.symbolize_keys!) }
98
121
  end
99
122
 
123
+ # @return [VersionStatus] status of the version
124
+ # @raise [UnexpectedResponse] on an unsuccessful response from the server
125
+ def status
126
+ resp = connection.get do |req|
127
+ req.url "#{base_path}/status"
128
+ end
129
+ raise_exception_based_on_response!(resp, object_identifier) unless resp.success?
130
+
131
+ VersionStatus.new(JSON.parse(resp.body).symbolize_keys!)
132
+ end
133
+
100
134
  private
101
135
 
102
136
  attr_reader :object_identifier
@@ -3,7 +3,7 @@
3
3
  module Dor
4
4
  module Services
5
5
  class Client
6
- VERSION = '14.4.0'
6
+ VERSION = '14.6.0'
7
7
  end
8
8
  end
9
9
  end
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.4.0
4
+ version: 14.6.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-03-25 00:00:00.000000000 Z
12
+ date: 2024-04-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -37,14 +37,14 @@ dependencies:
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.95.1
40
+ version: 0.96.0
41
41
  type: :runtime
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.95.1
47
+ version: 0.96.0
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: deprecation
50
50
  requirement: !ruby/object:Gem::Requirement
@@ -278,7 +278,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
278
278
  - !ruby/object:Gem::Version
279
279
  version: '0'
280
280
  requirements: []
281
- rubygems_version: 3.4.18
281
+ rubygems_version: 3.5.7
282
282
  signing_key:
283
283
  specification_version: 4
284
284
  summary: A client for dor-services-app