diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index a85f6678a..7b5bf533c 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -74,7 +74,7 @@ class RepositoriesController < ApplicationController flash[:success] = t('repositories.index.delete_flash', name: @repository.name) @repository.discard - ClearDiscardedRepositoriesJob.perform_later + @repository.destroy_discarded(current_user.id) redirect_to team_repositories_path end diff --git a/app/jobs/clear_discarded_repositories_job.rb b/app/jobs/clear_discarded_repositories_job.rb deleted file mode 100644 index bcd704944..000000000 --- a/app/jobs/clear_discarded_repositories_job.rb +++ /dev/null @@ -1,11 +0,0 @@ -class ClearDiscardedRepositoriesJob - class << self - def perform_later - Repository.with_discarded.discarded.destroy_all - end - - handle_asynchronously :perform_later, - queue: :clear_discarded_repositories, - priority: 20 - end -end diff --git a/app/models/repository.rb b/app/models/repository.rb index 174b88ac4..b17ed4b9c 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -2,7 +2,9 @@ class Repository < ApplicationRecord include SearchableModel include RepositoryImportParser include Discard::Model - + + attribute :discarded_by_id, :integer + belongs_to :team, optional: true belongs_to :created_by, foreign_key: :created_by_id, @@ -107,4 +109,12 @@ class Repository < ApplicationRecord importer = RepositoryImportParser::Importer.new(sheet, mappings, user, self) importer.run end + + def destroy_discarded(discarded_by_id = nil) + self.discarded_by_id = discarded_by_id + destroy + end + handle_asynchronously :destroy_discarded, + queue: :clear_discarded_repository, + priority: 20 end