dor-services 8.0.0 → 8.1.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: 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