31 lines
815 B
Ruby
31 lines
815 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Projects
|
|
class DestroyRollbackService < BaseService
|
|
include Gitlab::ShellAdapter
|
|
|
|
def execute
|
|
return unless project
|
|
|
|
Projects::ForksCountService.new(project).delete_cache
|
|
|
|
unless rollback_repository(project.repository)
|
|
raise_error(s_('DeleteProject|Failed to restore project repository. Please contact the administrator.'))
|
|
end
|
|
|
|
unless rollback_repository(project.wiki.repository)
|
|
raise_error(s_('DeleteProject|Failed to restore wiki repository. Please contact the administrator.'))
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def rollback_repository(repository)
|
|
return true unless repository
|
|
|
|
result = Repositories::DestroyRollbackService.new(repository).execute
|
|
|
|
result[:status] == :success
|
|
end
|
|
end
|
|
end
|