class Stash::Merritt::SwordHelper

Attributes

logger[R]
package[R]

Public Class Methods

new(package:, logger: nil) click to toggle source
# File lib/stash/merritt/sword_helper.rb, line 9
def initialize(package:, logger: nil)
  @logger = logger
  @package = package
end

Public Instance Methods

submit!() click to toggle source
# File lib/stash/merritt/sword_helper.rb, line 14
def submit!
  if (update_uri = resource.update_uri)
    do_update(update_uri)
  else
    do_create
  end
  resource.version_zipfile = zipfile
  resource.save!
end

Private Instance Methods

do_create() click to toggle source
# File lib/stash/merritt/sword_helper.rb, line 46
def do_create
  receipt = sword_client.create(doi: identifier_str, zipfile: zipfile)
  resource.download_uri = receipt.em_iri
  resource.update_uri = receipt.edit_iri
end
do_update(update_uri) click to toggle source
# File lib/stash/merritt/sword_helper.rb, line 52
def do_update(update_uri)
  sword_client.update(edit_iri: update_uri, zipfile: zipfile)
end
identifier_str() click to toggle source
# File lib/stash/merritt/sword_helper.rb, line 34
def identifier_str
  resource.identifier_str
end
resource() click to toggle source
# File lib/stash/merritt/sword_helper.rb, line 26
def resource
  package.resource
end
sword_client() click to toggle source
# File lib/stash/merritt/sword_helper.rb, line 42
def sword_client
  @sword_client ||= Stash::Sword::Client.new(logger: logger, **tenant.sword_params)
end
tenant() click to toggle source
# File lib/stash/merritt/sword_helper.rb, line 30
def tenant
  resource.tenant
end
zipfile() click to toggle source
# File lib/stash/merritt/sword_helper.rb, line 38
def zipfile
  package.zipfile
end