Class: ContentEventJob

Inherits:
EventJob show all
Defined in:
app/jobs/content_event_job.rb

Overview

A generic job for sending events about a generic files to a user and their followers.

Instance Attribute Summary collapse

Attributes inherited from EventJob

#depositor_id

Instance Method Summary collapse

Methods inherited from EventJob

#action, #depositor, #event, #queue_name

Methods included from Sufia::SufiaHelperBehavior

#current_search_parameters, #display_user_name, #error_messages_for, #has_collection_search_parameters?, #iconify_auto_link, #iconify_link, #is_url?, #link_back_to_dashboard, #link_to_dashboard_query, #link_to_facet, #link_to_facet_list, #link_to_field, #link_to_profile, #link_to_telephone, #linkify_chat_id, #number_of_deposits, #orcid_label, #render_visibility_label, #render_visibility_link, #search_form_action, #show_transfer_request_title, #sufia_thumbnail_tag, #user_display_name_and_key, #zotero_label, #zotero_profile_url

Methods included from Sufia::BlacklightOverride

#render_bookmarks_control?, #render_constraints_query, #url_for_document

Constructor Details

#initialize(generic_file_id, depositor_id) ⇒ ContentEventJob

Returns a new instance of ContentEventJob.



8
9
10
11
# File 'app/jobs/content_event_job.rb', line 8

def initialize(generic_file_id, depositor_id)
  super(depositor_id)
  @generic_file_id = generic_file_id
end

Instance Attribute Details

#generic_file_idString

the id of the file the event is specified for

Returns:

  • (String)

    the current value of generic_file_id



5
6
7
# File 'app/jobs/content_event_job.rb', line 5

def generic_file_id
  @generic_file_id
end

Instance Method Details

#generic_fileObject



19
20
21
# File 'app/jobs/content_event_job.rb', line 19

def generic_file
  @generic_file ||= GenericFile.load_instance_from_solr(generic_file_id)
end

#log_generic_file_eventObject

Log the event to the GF’s stream



24
25
26
# File 'app/jobs/content_event_job.rb', line 24

def log_generic_file_event
  generic_file.log_event(event) unless generic_file.nil?
end

#log_to_followersObject

override to check file permissions before logging to followers



29
30
31
32
33
# File 'app/jobs/content_event_job.rb', line 29

def log_to_followers
  depositor.followers.select { |user| user.can?(:read, generic_file) }.each do |follower|
    follower.log_event(event)
  end
end

#log_user_eventObject

log the event to the users profile stream



36
37
38
# File 'app/jobs/content_event_job.rb', line 36

def log_user_event
  depositor.log_profile_event(event)
end

#runObject



13
14
15
16
17
# File 'app/jobs/content_event_job.rb', line 13

def run
  super

  log_generic_file_event
end