Sha256: 75a225201235951d38e95db5324ec1a333a24dc9f20e17a10a81ae7f8dbd70cd

Contents?: true

Size: 1.27 KB

Versions: 8

Compression:

Stored size: 1.27 KB

Contents

# frozen_string_literal: true

module PurlFetcher
  class Client
    # Transfer release tags to purl-fetcher
    class ReleaseTags
      # @param [String] druid the identifier of the object
      # @param [Array<String>] index ([]) list of properties to index to
      # @param [Array<String>] delete ([]) list of properties to delete from
      def self.release(druid:, index: [], delete: [])
        new(druid:, index:, delete:).release
      end

      # @param [String] druid the identifier of the object
      # @param [Array<String>] index ([]) list of properties to index to
      # @param [Array<String>] delete ([]) list of properties to delete from
      def initialize(druid:, index: [], delete: [])
        @druid = druid
        @index = index
        @delete = delete
      end

      def release
        logger.debug("Starting an release request for: #{druid}")
        response = client.put(path:, body:)
        logger.debug("Release request complete")
      end

      private

      attr_reader :druid, :index, :delete

      def body
        { actions: { index:, delete: } }.to_json
      end

      def logger
        Client.config.logger
      end

      def client
        Client.instance
      end

      def path
        "/v1/released/#{druid}"
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
purl_fetcher-client-2.0.0 lib/purl_fetcher/client/release_tags.rb
purl_fetcher-client-1.5.4 lib/purl_fetcher/client/release_tags.rb
purl_fetcher-client-1.5.3 lib/purl_fetcher/client/release_tags.rb
purl_fetcher-client-1.5.2 lib/purl_fetcher/client/release_tags.rb
purl_fetcher-client-1.5.1 lib/purl_fetcher/client/release_tags.rb
purl_fetcher-client-1.5.0 lib/purl_fetcher/client/release_tags.rb
purl_fetcher-client-1.4.1 lib/purl_fetcher/client/release_tags.rb
purl_fetcher-client-1.4.0 lib/purl_fetcher/client/release_tags.rb