Sha256: 7e1cf3b4ed2a81f26d95309731a91e7987ebf8b2d9cdd5ebcdd1983ad993ec99
Contents?: true
Size: 1.22 KB
Versions: 8
Compression:
Stored size: 1.22 KB
Contents
# frozen_string_literal: true require 'dry/monads' module Hyrax module Transactions module Steps ## # Deletes a resource from the persister, returning a `Dry::Monads::Result` # (`Success`|`Failure`). # # @see https://dry-rb.org/gems/dry-monads/1.0/result/ class FileMetadataDelete include Dry::Monads[:result] ## # @params [#save] persister def initialize(persister: Hyrax.persister, storage_adapter: Hyrax.storage_adapter, publisher: Hyrax.publisher) @persister = persister @publisher = publisher @storage_adapter = storage_adapter end ## # @param [Hyrax::FileMetadata] FileMetadata resource # @param [::User] the user resposible for the delete action # # @return [Dry::Monads::Result] def call(resource) return Failure(:resource_not_persisted) unless resource.persisted? @persister.delete(resource: resource) @publisher.publish('file.metadata.deleted', metadata: resource) Valkyrie::StorageAdapter.delete(id: resource.file_identifier) if resource.file_identifier.present? Success(resource) end end end end end
Version data entries
8 entries across 8 versions & 1 rubygems