summaryrefslogtreecommitdiff
path: root/app/workers/project_destroy_worker.rb
blob: 482e1e38cd1ce50fe703ac5a32c5d6c72d1e0c7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class ProjectDestroyWorker
  include Sidekiq::Worker
  include DedicatedSidekiqQueue

  def perform(project_id, user_id, params)
    begin
      project = Project.unscoped.find(project_id)
    rescue ActiveRecord::RecordNotFound
      return
    end

    user = User.find(user_id)

    ::Projects::DestroyService.new(project, user, params.symbolize_keys).execute
  rescue StandardError => error
    project.assign_attributes(delete_error: error.message, pending_delete: false)
    project.save!(validate: false)
  end
end