Sha256: ca484bc5da15946428b6970db58a49148b1f24395c0307a83e2ce7b02a40ac55
Contents?: true
Size: 1.68 KB
Versions: 2
Compression:
Stored size: 1.68 KB
Contents
# frozen_string_literal: true require 'nokogiri' module Dor module Services class Client # API calls that are about preserved objects class SDR < VersionedService # @param object_id [String] the pid for the object def initialize(connection:, version:, object_id:) super(connection: connection, version: version) @object_id = object_id end # Gets the current version number for the object # @raise [UnexpectedResponse] when the response is not successful. # @raise [MalformedResponse] when the response is not parseable. # @return [Integer] the current version def current_version xml = current_version_response begin doc = Nokogiri::XML xml raise if doc.root.name != 'currentVersion' return Integer(doc.text) rescue StandardError raise MalformedResponse, "Unable to parse XML from current_version API call: #{xml}" end end private attr_reader :object_id # make the request to the server for the currentVersion xml # @raises [UnexpectedResponse] on an unsuccessful response from the server # @returns [String] the raw xml from the server def current_version_response resp = connection.get do |req| req.url current_version_path end return resp.body if resp.success? raise UnexpectedResponse, "#{resp.reason_phrase}: #{resp.status} (#{resp.body}) for #{object_id}" end def current_version_path "#{api_version}/sdr/objects/#{object_id}/current_version" end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dor-services-client-1.1.0 | lib/dor/services/client/sdr.rb |
dor-services-client-1.0.0 | lib/dor/services/client/sdr.rb |