dor-services-client 4.13.1 → 4.14.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: 0765c7a68c51ff36c39235c7aef14030dbd79e41e6f9430100ac8f23d266bd8f
4
- data.tar.gz: e6fa59e610a45e3b715e5a2d90a0c34ab8a671795fdafc7db87014e44d7ce61e
3
+ metadata.gz: 56c3ce6206a170292f44d10b8203748a498ae80450b15551136f3e7a2c804c67
4
+ data.tar.gz: 20cd69d1dffee9040fdd37fc2cd2c4b38e82a0f081d53367201789b2c2f0f6b1
5
5
  SHA512:
6
- metadata.gz: f00270a84ed870ee9f722ab6a10eddabb8e0527d264c8ecaf605b7e2c1d88ec47ba48643cbce19f21b1422c8e2f1d85a2864c73dce949b4a9a2b992ff2cf92f6
7
- data.tar.gz: f30b2e43b12928486f18a641005a51e0c9b37dbd7c6bcdd3cfb1ae44f0db1ec53d41f2c001e9fcfc113433905ae1e3e9d601f0b2fb6bdc646091871285b9d6eb
6
+ metadata.gz: eaff2fded30179d72a406fa087a2e4b8b43f1d8efe648215700df4244a599a3031b6b83aae50fb0414cff18f8ccf4b5618a5d27d2a3b3292ac4b0d11bd99e29a
7
+ data.tar.gz: e07b40ad72c26e76cd42325f264bea7af646c3593a09490a212e02947d4b69323b572523d9d2d6b97b11bc2018b6f781bf19dddda7bae450051552174d40436b
data/README.md CHANGED
@@ -125,9 +125,12 @@ object_client.metadata.legacy_update(
125
125
  # Return the Cocina metadata
126
126
  object_client.find
127
127
 
128
- # Query for an objects collections
128
+ # Query for an object's collections
129
129
  object_client.collections
130
130
 
131
+ # Query for a collection's members
132
+ object_client.members
133
+
131
134
  # View information about an object's files
132
135
  object_client.files.retrieve(filename: filename_string)
133
136
  object_client.files.list
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dor
4
+ module Services
5
+ class Client
6
+ # API call that queries the members of a collection.
7
+ class Members < VersionedService
8
+ Member = Struct.new(:externalIdentifier, :type, keyword_init: true)
9
+
10
+ # @param object_identifier [String] the pid for the object
11
+ def initialize(connection:, version:, object_identifier:)
12
+ super(connection: connection, version: version)
13
+ @object_identifier = object_identifier
14
+ end
15
+
16
+ # Get a list of the members.
17
+ # @raise [UnexpectedResponse] if the request is unsuccessful.
18
+ # @return [Array<Member>]
19
+ def members
20
+ resp = connection.get do |req|
21
+ req.url members_path
22
+ end
23
+
24
+ return response_to_models(resp) if resp.success?
25
+
26
+ raise_exception_based_on_response!(resp, object_identifier)
27
+ end
28
+
29
+ private
30
+
31
+ def response_to_models(resp)
32
+ JSON.parse(resp.body)['members'].map { |result| Member.new(**result.symbolize_keys) }
33
+ end
34
+
35
+ def object_path
36
+ "#{api_version}/objects/#{object_identifier}"
37
+ end
38
+
39
+ def members_path
40
+ "#{object_path}/members"
41
+ end
42
+
43
+ attr_reader :object_identifier
44
+ end
45
+ end
46
+ end
47
+ end
@@ -64,6 +64,13 @@ module Dor
64
64
  Collections.new(parent_params).collections
65
65
  end
66
66
 
67
+ # Get a list of the members
68
+ # @raise [UnexpectedResponse] if the request is unsuccessful.
69
+ # @return [Array<Members::Member>]
70
+ def members
71
+ Members.new(parent_params).members
72
+ end
73
+
67
74
  # Publish an object (send to PURL)
68
75
  # @raise [NotFoundResponse] when the response is a 404 (object not found)
69
76
  # @raise [UnexpectedResponse] when the response is not successful.
@@ -3,7 +3,7 @@
3
3
  module Dor
4
4
  module Services
5
5
  class Client
6
- VERSION = '4.13.1'
6
+ VERSION = '4.14.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: 4.13.1
4
+ version: 4.14.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: 2020-02-14 00:00:00.000000000 Z
12
+ date: 2020-02-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -215,6 +215,7 @@ files:
215
215
  - lib/dor/services/client/events.rb
216
216
  - lib/dor/services/client/files.rb
217
217
  - lib/dor/services/client/marcxml.rb
218
+ - lib/dor/services/client/members.rb
218
219
  - lib/dor/services/client/metadata.rb
219
220
  - lib/dor/services/client/object.rb
220
221
  - lib/dor/services/client/object_version.rb
@@ -243,7 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
244
  - !ruby/object:Gem::Version
244
245
  version: '0'
245
246
  requirements: []
246
- rubygems_version: 3.1.2
247
+ rubygems_version: 3.0.3
247
248
  signing_key:
248
249
  specification_version: 4
249
250
  summary: A client for dor-services-app