class Mrt::Ingest::Request

Represents a request to be sent to an ingest server.

Attributes

creator[RW]
date[RW]
digest[RW]
file[RW]
filename[RW]
local_identifier[RW]
note[RW]
primary_identifier[RW]
profile[RW]
submitter[RW]
title[RW]
type[RW]

Public Class Methods

new( profile:, submitter:, type:, creator: nil, date: nil, digest: nil, file: nil, filename: nil, local_identifier: nil, primary_identifier: nil, note: nil, title: nil ) click to toggle source

rubocop:disable Metrics/MethodLength, Metrics/ParameterLists

# File lib/mrt/ingest/request.rb, line 26
def initialize(
  profile:, submitter:, type:,
  creator: nil, date: nil, digest: nil, file: nil, filename: nil,
  local_identifier: nil, primary_identifier: nil, note: nil, title: nil
)
  raise ArgumentError, 'profile cannot be nil' unless profile
  raise ArgumentError, 'profile cannot be submitter' unless submitter
  raise ArgumentError, 'profile cannot be type' unless type

  @creator = creator
  @date = date
  @digest = digest
  @file = file
  @filename = filename
  @local_identifier = local_identifier
  @primary_identifier = primary_identifier
  @profile = profile
  @note = note
  @submitter = submitter
  @title = title
  @type = type
end

Public Instance Methods

mk_args() click to toggle source

Returns a hash of arguments suitable for sending to a server. rubocop: disable Metrics/MethodLength

# File lib/mrt/ingest/request.rb, line 52
def mk_args
  {
    'creator' => creator,
    'date' => date,
    'digestType' => digest_type,
    'digestValue' => digest_value,
    'file' => file,
    'filename' => filename,
    'localIdentifier' => local_identifier,
    'primaryIdentifier' => primary_identifier,
    'profile' => profile,
    'note' => note,
    'responseForm' => 'json',
    'submitter' => submitter,
    'title' => title,
    'type' => type
  }.reject { |_k, v| v.nil? || (v == '') }
end

Private Instance Methods

digest_type() click to toggle source
# File lib/mrt/ingest/request.rb, line 78
def digest_type
  digest && digest.type
end
digest_value() click to toggle source

rubocop: enable Metrics/MethodLength

# File lib/mrt/ingest/request.rb, line 74
def digest_value
  digest && digest.value
end