Sha256: b43d36e3182cb154fb9966a90a8d17c392a1da173ad4e3ac676078b23f2d2e8e

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

module PurlFetcher
  class Client
    # Delete an item from the purl-fetcher cache
    class Unpublish
      # @param [String] druid the identifier of the item
      # @param [String] version the version of the item
      # @raise [Purl::Fetcher::Client::AlreadyDeletedResponseError] if the item is already deleted
      def self.unpublish(druid:, version:)
        new(druid:, version:).unpublish
      end

      # @param [String] druid the identifier of the item
      # @param [String] version the version of the item
      def initialize(druid:, version:)
        @druid = druid
        @version = version
      end

      def unpublish
        logger.debug("Starting a unpublish request for: #{druid} (#{version})")
        response = client.delete(path:, params: { version: version })
        logger.debug("Unpublish request complete")
        response
      end

      private

      attr_reader :druid, :version

      def logger
        Client.config.logger
      end

      def client
        Client.instance
      end

      def path
        "/purls/#{druid}"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
purl_fetcher-client-2.0.0 lib/purl_fetcher/client/unpublish.rb