dor-services 8.0.0 → 8.1.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: 2b23b30fbc918705e040049d04869e4ce0ca5d2c9060aa52cbc3cb17bcbf1efa
4
- data.tar.gz: 75f7b272d2bd43b5cc6546f9881f15cd3f85f484bc5a219c710ac428efb8a558
3
+ metadata.gz: 9db4d292ea111c582968fb625988bf1479ee1f72d660b3f0c7c6b85084590888
4
+ data.tar.gz: d447c63fc694a3b5d490a092a90d08175b4e67b42979b275bf336e77b8b8e027
5
5
  SHA512:
6
- metadata.gz: f0fb8fe1755b93d8257f74b17ebc822e287dbb9d69c2a2376b05b6a45bc0f7241f68d8ffb0b36b0294e42b5030af223e9660e48c116e6c86882cc88f25e1589c
7
- data.tar.gz: 4de638d794ec9b372f3093c5ee432067c9ebca4fc213b7d4793a77f29b9d6bbde92cdf180e0f00844ac6cea89ed048639a2817e67f38743f21d03d199c74c327
6
+ metadata.gz: c5aa415cd76013eb41033aa02796351cff7c3343d018f35ca1a5fafa5e845d553d7cb38b05de8c005bf90afdec06ee36effe9563e5a210ac43aa2653da2f790d
7
+ data.tar.gz: b6c612125ee87bf1d583db3173cf7947b123273d93a24c46a68a5412697b263dbf090eac41603bbde940aaaf260aae23b89148364488fdaf012b7c101e05d79b
@@ -35,9 +35,6 @@ module Dor
35
35
  t.shelved_file_id proxy: %i[resource shelved_file id], index_as: %i[displayable stored_searchable]
36
36
  end
37
37
 
38
- extend Deprecation
39
- self.deprecation_horizon = '8.0'
40
-
41
38
  ### READ ONLY METHODS
42
39
 
43
40
  # Only use this when you want the behavior of raising an exception if anything besides exactly one matching node
@@ -138,38 +135,6 @@ module Dor
138
135
  end
139
136
  end
140
137
 
141
- # @param [Object] file
142
- # @param [String] resource_name
143
- # @return [Nokogiri::XML::Node] the added XML node
144
- def add_file(file, resource_name)
145
- resource_nodes = ng_xml.search('//resource[@id=\'' + resource_name + '\']')
146
- raise 'resource doesnt exist.' if resource_nodes.length == 0
147
-
148
- ng_xml_will_change!
149
-
150
- node = resource_nodes.first
151
- file_node = Nokogiri::XML::Node.new('file', ng_xml)
152
- file_node['id'] = file[:name]
153
- file_node['shelve'] = file[:shelve] || ''
154
- file_node['publish'] = file[:publish] || ''
155
- file_node['preserve'] = file[:preserve] || ''
156
- node.add_child(file_node)
157
-
158
- %i[md5 sha1].each do |algo|
159
- next unless file[algo]
160
-
161
- checksum_node = Nokogiri::XML::Node.new('checksum', ng_xml)
162
- checksum_node['type'] = algo.to_s
163
- checksum_node.content = file[algo]
164
- file_node.add_child(checksum_node)
165
- end
166
- file_node['size'] = file[:size] if file[:size]
167
- file_node['mimetype'] = file[:mime_type] if file[:mime_type]
168
- file_node['role'] = file[:role] if file[:role]
169
- file_node
170
- end
171
- deprecation_deprecate :add_file
172
-
173
138
  # Copies the child's resource into the parent (self) as a virtual resource.
174
139
  # Assumes the resource isn't a duplicate of an existing virtual or real resource.
175
140
  # @param [String] child_druid druid
@@ -195,71 +160,6 @@ module Dor
195
160
  resource
196
161
  end
197
162
 
198
- # @param [Array] files
199
- # @param [String] resource_name ID of the resource
200
- # @param [Integer] position
201
- # @param [String] type Resource type
202
- # @return [Nokogiri::XML::Node] the new resource that was added to the contentMetadata
203
- def add_resource(files, resource_name, position, type = 'file')
204
- raise "resource #{resource_name} already exists" if ng_xml.search('//resource[@id=\'' + resource_name + '\']').length > 0
205
-
206
- ng_xml_will_change!
207
- max = ng_xml.search('//resource').map { |node| node['sequence'].to_i }.max
208
- # renumber all of the resources that will come after the newly added one
209
- while max > position
210
- node = ng_xml.search('//resource[@sequence=\'' + position + '\']')
211
- node.first[sequence] = max + 1 if node.length > 0
212
- max -= 1
213
- end
214
- node = Nokogiri::XML::Node.new('resource', ng_xml)
215
- node['sequence'] = position.to_s
216
- node['id'] = resource_name
217
- node['type'] = type
218
- files.each do |file|
219
- file_node = Nokogiri::XML::Node.new('file', ng_xml)
220
- %w(shelve publish preserve).each { |x| file_node[x] = file[x.to_sym] || '' }
221
- file_node['id'] = file[:name]
222
- node.add_child(file_node)
223
-
224
- %i[md5 sha1].each do |algo|
225
- next if file[algo].nil?
226
-
227
- checksum_node = Nokogiri::XML::Node.new('checksum', ng_xml)
228
- checksum_node['type'] = algo.to_s
229
- checksum_node.content = file[algo]
230
- file_node.add_child(checksum_node)
231
- end
232
- file_node['size'] = file[:size] if file[:size]
233
- file_node['role'] = file[:role] if file[:role]
234
- end
235
- ng_xml.search('//contentMetadata').first.add_child(node)
236
- node
237
- end
238
- deprecation_deprecate :add_resource
239
-
240
- # @param [String] resource_name ID of the resource
241
- def remove_resource(resource_name)
242
- ng_xml_will_change!
243
- node = singular_node('//resource[@id=\'' + resource_name + '\']')
244
- position = node['sequence'].to_i + 1
245
- node.remove
246
- loop do
247
- res = ng_xml.search('//resource[@sequence=\'' + position.to_s + '\']')
248
- break if res.length == 0
249
-
250
- res['sequence'] = position.to_s
251
- position += 1
252
- end
253
- end
254
- deprecation_deprecate :remove_resource
255
-
256
- # @param [String] file_name ID of the file element
257
- def remove_file(file_name)
258
- ng_xml_will_change!
259
- ng_xml.search('//file[@id=\'' + file_name + '\']').each(&:remove)
260
- end
261
- deprecation_deprecate :remove_file
262
-
263
163
  # @param [String] file_name ID of the file element
264
164
  # @param [String] publish
265
165
  # @param [String] shelve
@@ -27,7 +27,7 @@ module Dor
27
27
 
28
28
  def current_version
29
29
  @current_version ||= begin
30
- resource.versionMetadata.current_version_id
30
+ resource.current_version
31
31
  rescue StandardError
32
32
  '1'
33
33
  end
@@ -13,7 +13,7 @@ module Dor
13
13
  def query(query, args = {})
14
14
  params = args.merge(q: query)
15
15
  params[:start] ||= 0
16
- resp = _solr.get 'select', params: params
16
+ resp = solr.get 'select', params: params
17
17
  return resp unless block_given?
18
18
 
19
19
  cont = true
@@ -21,7 +21,7 @@ module Dor
21
21
  cont = yield(resp)
22
22
  params[:rows] ||= resp['response']['docs'].length
23
23
  params[:start] += params[:rows]
24
- resp = _solr.get 'select', params: params
24
+ resp = solr.get 'select', params: params
25
25
  end
26
26
  end
27
27
 
@@ -40,11 +40,6 @@ module Dor
40
40
  result
41
41
  end
42
42
 
43
- def solr
44
- Deprecation.warn(self, 'Dor::SearchService.solr is deprecated. Call ActiveFedora.solr.conn directly')
45
- _solr
46
- end
47
-
48
43
  # @return String druid of the SDR Graveyard APO
49
44
  # nil if APO does not exist in the currently configured environment
50
45
  def sdr_graveyard_apo_druid
@@ -62,7 +57,7 @@ module Dor
62
57
 
63
58
  private
64
59
 
65
- def _solr
60
+ def solr
66
61
  ActiveFedora.solr.conn
67
62
  end
68
63
  end
@@ -2,19 +2,29 @@
2
2
 
3
3
  module Dor
4
4
  class StateService
5
- def initialize(pid)
5
+ extend Deprecation
6
+
7
+ # having version is prefered as without it, a call to
8
+ # fedora will be made to retrieve it.
9
+ def initialize(pid, version: nil)
6
10
  @pid = pid
11
+ @version = version || fetch_version
7
12
  end
8
13
 
9
14
  def allows_modification?
10
15
  !client.lifecycle('dor', pid, 'submitted') ||
11
- client.active_lifecycle('dor', pid, 'opened') ||
16
+ client.lifecycle('dor', pid, 'opened', version: version) ||
12
17
  client.workflow_status('dor', pid, 'accessionWF', 'sdr-ingest-transfer') == 'hold'
13
18
  end
14
19
 
15
20
  private
16
21
 
17
- attr_reader :pid
22
+ attr_reader :pid, :version
23
+
24
+ def fetch_version
25
+ Deprecation.warn(self, 'Calling the state service without passing in a version is deprecated and will be removed in dor-services 9')
26
+ Dor.find(pid).current_version
27
+ end
18
28
 
19
29
  def client
20
30
  Dor::Config.workflow.client
@@ -66,11 +66,6 @@ module Dor
66
66
  @default_ssl_cert_store ||= RestClient::Request.default_ssl_cert_store
67
67
  end
68
68
 
69
- def cleanup
70
- @cleanup.configure(&block) if block_given?
71
- @cleanup
72
- end
73
-
74
69
  def ssl(&block)
75
70
  @ssl.configure(&block) if block_given?
76
71
  @ssl
@@ -4,6 +4,9 @@ module Dor
4
4
  class StaticConfig
5
5
  # Represents the configuration for the shared filesystem direcotories
6
6
  class StacksConfig
7
+ extend Deprecation
8
+ self.deprecation_horizon = 'dor-services 9.0'
9
+
7
10
  def initialize(hash)
8
11
  @document_cache_host = hash.fetch(:document_cache_host)
9
12
  @local_stacks_root = hash.fetch(:local_stacks_root)
@@ -34,6 +37,7 @@ module Dor
34
37
  @local_document_cache_root = new_value if new_value
35
38
  @local_document_cache_root
36
39
  end
40
+ deprecation_deprecate :local_document_cache_root
37
41
  end
38
42
  end
39
43
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dor
4
- VERSION = '8.0.0'
4
+ VERSION = '8.1.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dor-services
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.0
4
+ version: 8.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Klein
@@ -20,7 +20,7 @@ authors:
20
20
  autorequire:
21
21
  bindir: bin
22
22
  cert_chain: []
23
- date: 2019-09-16 00:00:00.000000000 Z
23
+ date: 2019-09-19 00:00:00.000000000 Z
24
24
  dependencies:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: active-fedora
@@ -240,14 +240,14 @@ dependencies:
240
240
  requirements:
241
241
  - - "~>"
242
242
  - !ruby/object:Gem::Version
243
- version: '3.3'
243
+ version: '3.8'
244
244
  type: :runtime
245
245
  prerelease: false
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
248
  - - "~>"
249
249
  - !ruby/object:Gem::Version
250
- version: '3.3'
250
+ version: '3.8'
251
251
  - !ruby/object:Gem::Dependency
252
252
  name: druid-tools
253
253
  requirement: !ruby/object:Gem::Requirement