Class: Maintenance::ActivityMaintenance

Inherits:
BaseService show all
Defined in:
app/services/maintenance/activity_maintenance.rb

Overview

Service object: activity maintenance.

Instance Attribute Summary

Attributes inherited from BaseService

#options

Instance Method Summary collapse

Methods inherited from BaseService

#initialize, #log_debug, #log_error, #log_info, #log_warning, #logger, #tagged_logger

Constructor Details

This class inherits a constructor from BaseService

Instance Method Details

#close_invalid_activitiesObject



21
22
23
24
25
26
27
# File 'app/services/maintenance/activity_maintenance.rb', line 21

def close_invalid_activities
  @logger.info "close_invalid_activities started"
  ActivityType.with_customer_filter.each do |activity_type|
    @logger.info "Looking at invalid activities of activity_type: #{activity_type.task_type}"
    activity_type.cancel_invalid_activities(logger: @logger)
  end
end

#fix_time_offsetObject



11
12
13
14
15
16
17
18
19
# File 'app/services/maintenance/activity_maintenance.rb', line 11

def fix_time_offset
  sql = <<-EOS
      update activities set target_datetime = target_datetime + interval '18 hours'
      where target_datetime IS NOT NULL and date_part('hour',target_datetime) IN (5,6);
  EOS
  @logger.info "Fixing activity target datetime and marking as COB CST when set for midnight in GMT-6 or 5 TimeZone"
  res = ActiveRecord::Base.lease_connection.execute(sql)
  @logger.info "Completed, result status: #{res.cmd_tuples}"
end

#processObject



4
5
6
7
8
9
# File 'app/services/maintenance/activity_maintenance.rb', line 4

def process
  PaperTrail.request(whodunnit: 'Maintenance::ActivityMaintenance') do
    fix_time_offset
    close_invalid_activities
  end
end