Sha256: a9f3899eb4771ea543fb671cb490f9c47902ab5021753b19e747ff299ea4e5c1
Contents?: true
Size: 1.6 KB
Versions: 3
Compression:
Stored size: 1.6 KB
Contents
# frozen_string_literal: true module SdrClient module Deposit # Creates a resource (metadata) in SDR class CreateResource DRO_PATH = '/v1/resources' def self.run(accession:, metadata:, logger:, connection:) new(accession: accession, metadata: metadata, logger: logger, connection: connection).run end # @param [Boolean] accession should the accessionWF be started # @param [Cocina::Models::RequestDRO, Cocina::Models::RequestCollection] metadata # @param [Hash<Symbol,String>] the result of the metadata call def initialize(accession:, metadata:, logger:, connection:) @accession = accession @metadata = metadata @logger = logger @connection = connection end # @param [Hash<Symbol,String>] the result of the metadata call # @return [String] job id for the background job result def run response = metadata_request UnexpectedResponse.call(response) unless response.status == 201 logger.info("Response from server: #{response.body}") JSON.parse(response.body)['jobId'] end private attr_reader :metadata, :logger, :connection def metadata_request json = metadata.to_json logger.debug("Starting upload metadata: #{json}") connection.post(path, json, 'Content-Type' => 'application/json', 'X-Cocina-Models-Version' => Cocina::Models::VERSION) end def accession? @accession end def path "#{DRO_PATH}?accession=#{accession?}" end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sdr-client-0.58.0 | lib/sdr_client/deposit/create_resource.rb |
sdr-client-0.57.0 | lib/sdr_client/deposit/create_resource.rb |
sdr-client-0.56.0 | lib/sdr_client/deposit/create_resource.rb |