Module: ActivityLogFetchable

Extended by:
ActiveSupport::Concern
Included in:
ActionTrace::FetchDataChanges, ActionTrace::FetchPageVisits, ActionTrace::FetchSessionStarts, ActionTrace::MergeAndFormatResults
Defined in:
app/interactors/concerns/activity_log_fetchable.rb

Instance Method Summary collapse

Instance Method Details

#base_scope(model_class) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/interactors/concerns/activity_log_fetchable.rb', line 18

def base_scope(model_class)
  scope = model_class.all
  scope = apply_activity_type_filter(scope) if model_class == PublicActivity::Activity
  if context.company_id.present?
    scope = if model_class.respond_to?(:filter_by_company)
              model_class.filter_by_company(scope, context.company_id)
            elsif model_class.method_defined?(:company_id)
              scope.where(company_id: context.company_id)
            else
              scope
            end
  end

  user_column = model_class == PublicActivity::Activity ? :owner_id : :user_id
  scope = scope.where(user_column => context.user_id) if context.user_id.present?

  apply_date_filters(scope, model_class)
end

#should_fetch?(source_type) ⇒ Boolean

Returns:

  • (Boolean)


6
7
8
9
10
11
12
13
14
15
16
# File 'app/interactors/concerns/activity_log_fetchable.rb', line 6

def should_fetch?(source_type)
  return true if context.source.blank?

  if %w[data_change data_destroy].include?(source_type)
    return context.source == ActionTrace::ActivityLog::SOURCES[:data_change] ||
           context.source == ActionTrace::ActivityLog::SOURCES[:data_destroy] ||
           context.source == ActionTrace::ActivityLog::SOURCES[:data_create]
  end

  context.source == source_type
end