Sha256: 9233d8adb64ebe3319882d7eff9885ed611107a7547f83b654c7a7a9d5fb8fc6
Contents?: true
Size: 1.98 KB
Versions: 3
Compression:
Stored size: 1.98 KB
Contents
# frozen_string_literal: true module SdrClient module Deposit # This represents the File metadata that we send to the server for doing a deposit class File # rubocop:disable Metrics/ParameterLists def initialize(external_identifier:, label:, filename:, view: 'dark', download: 'none', location: nil, preserve: true, shelve: true, publish: true, mime_type: nil, md5: nil, sha1: nil, use: nil) @external_identifier = external_identifier @label = label @filename = filename @view = view @download = download @location = location @preserve = preserve @shelve = view == 'dark' ? false : shelve @publish = publish @mime_type = mime_type @md5 = md5 @sha1 = sha1 @use = use end # rubocop:enable Metrics/ParameterLists def as_json { type: Cocina::Models::ObjectType.file, label: @label, filename: @filename, externalIdentifier: @external_identifier, access: { view: @view, download: @download }, administrative: { sdrPreserve: @preserve, shelve: @shelve, publish: @publish }, version: 1, hasMessageDigests: message_digests }.tap do |json| json['hasMimeType'] = @mime_type if @mime_type json['use'] = @use if @use json[:access][:location] = @location if @location end end private def message_digests @message_digests ||= [].tap do |message_digests| message_digests << create_message_digest('md5', @md5) unless @md5.nil? message_digests << create_message_digest('sha1', @sha1) unless @sha1.nil? end end def create_message_digest(algorithm, digest) { type: algorithm, digest: digest } end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sdr-client-2.18.0 | lib/sdr_client/deposit/file.rb |
sdr-client-2.17.0 | lib/sdr_client/deposit/file.rb |
sdr-client-2.16.0 | lib/sdr_client/deposit/file.rb |