Sha256: e90bf306dbeb3513777948342d341dd8f7a24296ff094a7d9b1f8af33f489cfb
Contents?: true
Size: 1.54 KB
Versions: 1
Compression:
Stored size: 1.54 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 def initialize(external_identifier:, label:, filename:, access: 'dark', preserve: false, shelve: false, md5: nil, sha1: nil) @external_identifier = external_identifier @label = label @filename = filename @access = access @preserve = preserve @shelve = shelve @md5 = md5 @sha1 = sha1 end # rubocop:disable Metrics/MethodLength def as_json json = { "type": 'http://cocina.sul.stanford.edu/models/file.jsonld', label: @label, filename: @filename, externalIdentifier: @external_identifier, access: { access: @access }, administrative: { sdrPreserve: @preserve, shelve: @shelve } } json['hasMessageDigests'] = message_digests unless message_digests.empty? json end # rubocop:enable Metrics/MethodLength 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sdr-client-0.5.0 | lib/sdr_client/deposit/file.rb |