Sha256: a5bd2fc04da6d2f8ddcc111e843277475a5860518c3618a215cd6cc007b095ec

Contents?: true

Size: 933 Bytes

Versions: 1

Compression:

Stored size: 933 Bytes

Contents

class SyncProjectTicketsJob
  
  def initialize(project)
    @project = project
  end
  
  attr_reader :project
  
  def run!
    Rails.logger.debug "\e[33;1mStart sync job\e[0m"
    
    start_time = Time.now
    @project.update_column :ticket_tracker_sync_started_at, start_time
    
    if @project.ticket_tracker.supports?(:syncing_milestones)
      milestones = project.all_milestones
      project.milestones.without(milestones).update_all(destroyed_at: Time.now)
    end
    
    if @project.ticket_tracker.supports?(:syncing_tickets)
      tickets = project.all_tickets
      project.tickets.without(tickets).update_all(destroyed_at: Time.now)
    end
    
    @project.update_column :last_ticket_tracker_sync_at, Time.now
  ensure
    @project.update_column :ticket_tracker_sync_started_at, nil
    
    Rails.logger.debug "\e[33;1mFinish sync job in \e[4m%.2f\e[0;33;1m seconds\e[0m" % (Time.now - start_time)
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
houston-core-0.5.0.beta1 app/jobs/sync_project_tickets_job.rb