Class: Dor::Services::Client::ObjectVersion
- Inherits:
-
VersionedService
- Object
- VersionedService
- Dor::Services::Client::ObjectVersion
- Defined in:
- lib/dor/services/client/object_version.rb
Overview
API calls that are about versions
Instance Method Summary collapse
-
#close(**params) ⇒ String
Close current version for an object.
-
#current ⇒ String
Get the current version for a DOR object.
-
#initialize(connection:, version:, object_identifier:) ⇒ ObjectVersion
constructor
A new instance of ObjectVersion.
-
#open(**params) ⇒ String
Open new version for an object.
-
#openable?(**params) ⇒ Boolean
Determines if a new version can be opened for a DOR object.
Methods inherited from VersionedService
Constructor Details
#initialize(connection:, version:, object_identifier:) ⇒ ObjectVersion
Returns a new instance of ObjectVersion.
9 10 11 12 |
# File 'lib/dor/services/client/object_version.rb', line 9 def initialize(connection:, version:, object_identifier:) super(connection: connection, version: version) @object_identifier = object_identifier end |
Instance Method Details
#close(**params) ⇒ String
Close current version for an object
69 70 71 72 73 74 75 76 77 78 |
# File 'lib/dor/services/client/object_version.rb', line 69 def close(**params) resp = connection.post do |req| req.url close_version_path req.headers['Content-Type'] = 'application/json' req.body = params.to_json if params.any? end return resp.body if resp.success? raise_exception_based_on_response!(resp) end |
#current ⇒ String
Get the current version for a DOR object. This comes from Dor::VersionMetadataDS
18 19 20 21 22 23 24 25 |
# File 'lib/dor/services/client/object_version.rb', line 18 def current resp = connection.get do |req| req.url "#{object_path}/versions/current" end return resp.body if resp.success? raise_exception_based_on_response!(resp) end |
#open(**params) ⇒ String
Open new version for an object
57 58 59 60 61 62 |
# File 'lib/dor/services/client/object_version.rb', line 57 def open(**params) version = open_new_version_response(**params) raise MalformedResponse, "Version of #{object_identifier} is empty" if version.empty? version end |
#openable?(**params) ⇒ Boolean
Determines if a new version can be opened for a DOR object. rubocop:disable Metrics/MethodLength
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/dor/services/client/object_version.rb', line 33 def openable?(**params) resp = connection.get do |req| req.url "#{object_path}/versions/openable" req.params = params end raise_exception_based_on_response!(resp) unless resp.success? if resp.body == 'true' true elsif resp.body == 'false' false else raise MalformedResponse, "Expected true or false, not #{resp.body}" end end |