dor-services-client 7.7.1 → 7.11.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 +1 -1
- data/dor-services-client.gemspec +1 -1
- data/lib/dor/services/client/metadata.rb +14 -0
- data/lib/dor/services/client/mutate.rb +2 -2
- data/lib/dor/services/client/object.rb +10 -4
- data/lib/dor/services/client/object_metadata.rb +33 -0
- data/lib/dor/services/client/version.rb +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5daa536eed5f0cf1c7ddaeed7c159d8b7b8f55f9e82321cc9aac567f1133caf6
|
4
|
+
data.tar.gz: dda62da3d92bf55455fc568c458c48c63f4081ba4a12b7d25020f459cfa150ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 62d5bd30f16a862494570bb511da48a6bbf4f4c9d4cace4485f69e6c0dab71e91c5d404fb21c5e8622eb549392d17c568992b43180189103c42f9c95bc9b5caa
|
7
|
+
data.tar.gz: 3aaef88355a8a3e04d0a7fe37276b69f534ae1772bb6be365706d25eb440385a415c1367c1eb0e248ea3353c966a1788c96c0efb08e45f03a597ba813e37b2d1
|
data/README.md
CHANGED
@@ -112,7 +112,7 @@ object_client.preserve(lane_id: 'low')
|
|
112
112
|
object_client.update_marc_record
|
113
113
|
|
114
114
|
# Copy metadata from Symphony into descMetadata
|
115
|
-
object_client.
|
115
|
+
object_client.refresh_descriptive_metadata_from_ils
|
116
116
|
|
117
117
|
# Apply defaults from the item's AdminPolicy to the item itself
|
118
118
|
object_client.apply_admin_policy_defaults
|
data/dor-services-client.gemspec
CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.required_ruby_version = '>= 2.7', '< 4' # dor-services-app needs 2.7 due to fedora3
|
26
26
|
|
27
27
|
spec.add_dependency 'activesupport', '>= 4.2', '< 8'
|
28
|
-
spec.add_dependency 'cocina-models', '~> 0.
|
28
|
+
spec.add_dependency 'cocina-models', '~> 0.65.0' # leave pinned to patch level until cocina-models hits 1.0
|
29
29
|
spec.add_dependency 'deprecation', '>= 0'
|
30
30
|
spec.add_dependency 'faraday', '>= 0.15', '< 2'
|
31
31
|
spec.add_dependency 'zeitwerk', '~> 2.1'
|
@@ -87,6 +87,20 @@ module Dor
|
|
87
87
|
raise_exception_based_on_response!(resp, object_identifier)
|
88
88
|
end
|
89
89
|
|
90
|
+
# Update the MODS XML metadata
|
91
|
+
# @raise [NotFoundResponse] when the response is a 404 (object not found)
|
92
|
+
# @return [boolean] true on success
|
93
|
+
def update_mods(mods_xml)
|
94
|
+
resp = connection.put do |req|
|
95
|
+
req.url "#{base_path}/mods"
|
96
|
+
req.headers['Content-Type'] = 'application/xml'
|
97
|
+
req.body = mods_xml
|
98
|
+
end
|
99
|
+
return if resp.success?
|
100
|
+
|
101
|
+
raise_exception_based_on_response!(resp, object_identifier)
|
102
|
+
end
|
103
|
+
|
90
104
|
# rubocop:disable Lint/StructNewOverride
|
91
105
|
Datastream = Struct.new(:label, :dsid, :pid, :size, :mimeType, :versionId, keyword_init: true)
|
92
106
|
# rubocop:enable Lint/StructNewOverride
|
@@ -26,7 +26,7 @@ module Dor
|
|
26
26
|
end
|
27
27
|
|
28
28
|
# Updates the object
|
29
|
-
# @param [Cocina::Models::
|
29
|
+
# @param [Cocina::Models::DRO,Cocina::Models::Collection,Cocina::Models::AdminPolicy] params model object
|
30
30
|
# @raise [NotFoundResponse] when the response is a 404 (object not found)
|
31
31
|
# @raise [UnexpectedResponse] when the response is not successful.
|
32
32
|
# @return [Cocina::Models::DRO,Cocina::Models::Collection,Cocina::Models::AdminPolicy] the returned model
|
@@ -48,7 +48,7 @@ module Dor
|
|
48
48
|
# @raise [NotFoundResponse] when the response is a 404 (object not found)
|
49
49
|
# @raise [UnexpectedResponse] when the response is not successful.
|
50
50
|
# @return [boolean] true on success
|
51
|
-
def
|
51
|
+
def refresh_descriptive_metadata_from_ils
|
52
52
|
resp = connection.post do |req|
|
53
53
|
req.url "#{object_path}/refresh_metadata"
|
54
54
|
end
|
@@ -1,10 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'deprecation'
|
4
|
+
|
3
5
|
module Dor
|
4
6
|
module Services
|
5
7
|
class Client
|
6
8
|
# API calls that are about a repository object
|
7
9
|
class Object < VersionedService
|
10
|
+
extend Deprecation
|
8
11
|
attr_reader :object_identifier
|
9
12
|
|
10
13
|
# @param object_identifier [String] the pid for the object
|
@@ -50,8 +53,8 @@ module Dor
|
|
50
53
|
# Retrieves the Cocina model and response metadata
|
51
54
|
# @raise [NotFoundResponse] when the response is a 404 (object not found)
|
52
55
|
# @raise [UnexpectedResponse] when the response is not successful.
|
53
|
-
# @return [Array<Cocina::Models::DRO,Cocina::Models::Collection,Cocina::Models::AdminPolicy,
|
54
|
-
# the first is the model and the second is a
|
56
|
+
# @return [Array<Cocina::Models::DRO,Cocina::Models::Collection,Cocina::Models::AdminPolicy,ObjectMetadata>] a tuple where
|
57
|
+
# the first is the model and the second is a ObjectMetadata object
|
55
58
|
def find_with_metadata
|
56
59
|
resp = connection.get do |req|
|
57
60
|
req.url object_path
|
@@ -61,7 +64,7 @@ module Dor
|
|
61
64
|
model = Cocina::Models.build(JSON.parse(resp.body))
|
62
65
|
|
63
66
|
# Don't use #slice here as Faraday will downcase the keys.
|
64
|
-
metadata =
|
67
|
+
metadata = ObjectMetadata.new(updated_at: resp.headers['Last-Modified'], created_at: resp.headers['X-Created-At'])
|
65
68
|
[model, metadata]
|
66
69
|
end
|
67
70
|
|
@@ -89,7 +92,10 @@ module Dor
|
|
89
92
|
Mutate.new(**parent_params)
|
90
93
|
end
|
91
94
|
|
92
|
-
delegate :
|
95
|
+
delegate :refresh_descriptive_metadata_from_ils, :update, :destroy, :apply_admin_policy_defaults, to: :mutate
|
96
|
+
|
97
|
+
alias refresh_metadata refresh_descriptive_metadata_from_ils
|
98
|
+
deprecation_deprecate refresh_metadata: 'Use refresh_descriptive_metadata_from_ils instead'
|
93
99
|
|
94
100
|
# Update the marc record for the given object
|
95
101
|
# @raise [NotFoundResponse] when the response is a 404 (object not found)
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'deprecation'
|
4
|
+
|
5
|
+
module Dor
|
6
|
+
module Services
|
7
|
+
class Client
|
8
|
+
# An object representing metadata about the cocina object returned by the object show method
|
9
|
+
class ObjectMetadata
|
10
|
+
extend Deprecation
|
11
|
+
|
12
|
+
attr_reader :created_at, :updated_at
|
13
|
+
|
14
|
+
def initialize(created_at:, updated_at:)
|
15
|
+
@created_at = created_at
|
16
|
+
@updated_at = updated_at
|
17
|
+
end
|
18
|
+
|
19
|
+
def [](key)
|
20
|
+
case key
|
21
|
+
when 'Last-Modified'
|
22
|
+
updated_at
|
23
|
+
when 'X-Created-At'
|
24
|
+
created_at
|
25
|
+
else
|
26
|
+
raise KeyError, 'Unknown key'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
deprecation_deprecate(:[] => 'Hash accessor is no longer used, use object accessor instead')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
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: 7.
|
4
|
+
version: 7.11.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: 2022-
|
12
|
+
date: 2022-02-08 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.
|
40
|
+
version: 0.65.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.
|
47
|
+
version: 0.65.0
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: deprecation
|
50
50
|
requirement: !ruby/object:Gem::Requirement
|
@@ -241,6 +241,7 @@ files:
|
|
241
241
|
- lib/dor/services/client/metadata.rb
|
242
242
|
- lib/dor/services/client/mutate.rb
|
243
243
|
- lib/dor/services/client/object.rb
|
244
|
+
- lib/dor/services/client/object_metadata.rb
|
244
245
|
- lib/dor/services/client/object_version.rb
|
245
246
|
- lib/dor/services/client/objects.rb
|
246
247
|
- lib/dor/services/client/response_error_formatter.rb
|
@@ -271,7 +272,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
271
272
|
- !ruby/object:Gem::Version
|
272
273
|
version: '0'
|
273
274
|
requirements: []
|
274
|
-
rubygems_version: 3.
|
275
|
+
rubygems_version: 3.2.32
|
275
276
|
signing_key:
|
276
277
|
specification_version: 4
|
277
278
|
summary: A client for dor-services-app
|