dor-services-client 4.13.1 → 4.14.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: 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