lib/preservation/client/objects.rb in preservation-client-0.4.0 vs lib/preservation/client/objects.rb in preservation-client-0.5.0
- old
+ new
@@ -68,13 +68,20 @@
# @param [String] version - the version of the file requested (defaults to nil for latest version)
def metadata(druid:, filepath:, version: nil)
file(druid, 'metadata', filepath, version)
end
- # convenience method for retrieving latest signatureCatalog.xml file from a Moab object
+ # convenience method for retrieving latest Moab::SignatureCatalog from a Moab object,
+ # or a newly minted Moab::SignatureCatalog if it doesn't yet exist
# @param [String] druid - with or without prefix: 'druid:ab123cd4567' OR 'ab123cd4567'
+ # @return [Moab::SignatureCatalog] the catalog of all files previously ingested
def signature_catalog(druid)
- manifest(druid: druid, filepath: 'signatureCatalog.xml')
+ Moab::SignatureCatalog.parse manifest(druid: druid, filepath: 'signatureCatalog.xml')
+ rescue Preservation::Client::UnexpectedResponseError => e
+ return Moab::SignatureCatalog.new(digital_object_id: druid, version_id: 0) if
+ e.message.match?('404 File Not Found')
+
+ raise
end
private
# get a file from a Moab object