Sha256: 1092c9eb6d1eab2c8c630ad58ad44f2ed834400813e20bb8a1119ff0c7e68b9b

Contents?: true

Size: 1.34 KB

Versions: 19

Compression:

Stored size: 1.34 KB

Contents

# frozen_string_literal: true
# Log work depositor change to activity streams
#
# This class simply logs the transfer, pulling data from the object that was
# just transferred. It does not perform the transfer.
class ChangeDepositorEventJob < ContentEventJob
  include Rails.application.routes.url_helpers
  include ActionDispatch::Routing::PolymorphicRoutes

  # @param [ActiveFedora::Base, Hyrax::Work] work the work that's been transfered
  def perform(work)
    # these get set to repo_object and depositor
    super(work, new_owner(work))
  end

  def action
    "User #{link_to_profile repo_object.proxy_depositor} has transferred #{link_to_work repo_object.title.first} to user #{link_to_profile depositor}"
  end

  def link_to_work(text)
    link_to text, polymorphic_path(repo_object)
  end

  # Log the event to the work's stream
  def log_work_event(work)
    work.log_event(event)
  end
  alias log_file_set_event log_work_event

  # overriding default to log the event to the depositor instead of their profile
  # and to log the event for both users
  def log_user_event(depositor)
    previous_owner.log_profile_event(event)
    depositor.log_event(event)
  end

  private

  def previous_owner
    ::User.find_by_user_key(repo_object.proxy_depositor)
  end

  # used for @depositor
  def new_owner(work)
    ::User.find_by_user_key(work.depositor)
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
hyrax-5.0.4 app/jobs/change_depositor_event_job.rb
hyrax-5.0.3 app/jobs/change_depositor_event_job.rb
hyrax-5.0.2 app/jobs/change_depositor_event_job.rb
hyrax-5.0.1 app/jobs/change_depositor_event_job.rb
hyrax-5.0.0 app/jobs/change_depositor_event_job.rb
hyrax-5.0.0.rc3 app/jobs/change_depositor_event_job.rb
hyrax-5.0.0.rc2 app/jobs/change_depositor_event_job.rb
hyrax-5.0.0.rc1 app/jobs/change_depositor_event_job.rb
hyrax-3.6.0 app/jobs/change_depositor_event_job.rb
hyrax-4.0.0 app/jobs/change_depositor_event_job.rb
hyrax-4.0.0.rc3 app/jobs/change_depositor_event_job.rb
hyrax-4.0.0.rc2 app/jobs/change_depositor_event_job.rb
hyrax-4.0.0.rc1 app/jobs/change_depositor_event_job.rb
hyrax-3.5.0 app/jobs/change_depositor_event_job.rb
hyrax-4.0.0.beta2 app/jobs/change_depositor_event_job.rb
hyrax-3.4.2 app/jobs/change_depositor_event_job.rb
hyrax-4.0.0.beta1 app/jobs/change_depositor_event_job.rb
hyrax-3.4.1 app/jobs/change_depositor_event_job.rb
hyrax-3.4.0 app/jobs/change_depositor_event_job.rb