Class: Dor::Services::Client::Objects
- Inherits:
-
VersionedService
- Object
- VersionedService
- Dor::Services::Client::Objects
- Defined in:
- lib/dor/services/client/objects.rb
Overview
API calls that are about repository objects
Constant Summary
Constants inherited from VersionedService
VersionedService::EXCEPTION_CLASS, VersionedService::JSON_API_MIME_TYPE
Instance Method Summary collapse
-
#find(source_id:, validate: false) ⇒ Cocina::Models::DROWithMetadata, Cocina::Models::CollectionWithMetadata
Find an object by source ID.
-
#register(params:, assign_doi: false, validate: false, user_name: nil) ⇒ Cocina::Models::DROWithMetadata, ...
Creates a new object in DOR.
-
#statuses(object_ids:) ⇒ Hash<String,VersionStatus>
Retrieves the version statuses for a batch of objects.
Methods inherited from VersionedService
Constructor Details
This class inherits a constructor from Dor::Services::Client::VersionedService
Instance Method Details
#find(source_id:, validate: false) ⇒ Cocina::Models::DROWithMetadata, Cocina::Models::CollectionWithMetadata
Find an object by source ID
36 37 38 39 40 41 42 43 44 |
# File 'lib/dor/services/client/objects.rb', line 36 def find(source_id:, validate: false) resp = connection.get do |req| req.url "#{objects_path}/find" req.params['sourceId'] = source_id end raise_exception_based_on_response!(resp) unless resp.success? build_cocina_from_response(resp, validate: validate) end |
#register(params:, assign_doi: false, validate: false, user_name: nil) ⇒ Cocina::Models::DROWithMetadata, ...
Creates a new object in DOR
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/dor/services/client/objects.rb', line 16 def register(params:, assign_doi: false, validate: false, user_name: nil) resp = connection.post do |req| req.url objects_path req.params = { assign_doi: assign_doi, user_name: user_name }.compact req.headers['Content-Type'] = 'application/json' # asking the service to return JSON (else it'll be plain text) req.headers['Accept'] = 'application/json' req.body = params.to_json end raise_exception_based_on_response!(resp) unless resp.success? build_cocina_from_response(resp, validate: validate) end |
#statuses(object_ids:) ⇒ Hash<String,VersionStatus>
Retrieves the version statuses for a batch of objects
50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/dor/services/client/objects.rb', line 50 def statuses(object_ids:) resp = connection.post do |req| req.url "#{objects_path}/versions/status" req.headers['Content-Type'] = 'application/json' req.body = { externalIdentifiers: object_ids }.to_json end raise_exception_based_on_response!(resp) unless resp.success? JSON.parse(resp.body).transform_values { |status| ObjectVersion::VersionStatus.new(status.symbolize_keys!) } end |