Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/packages')
-rw-r--r--app/services/packages/mark_package_for_destruction_service.rb1
-rw-r--r--app/services/packages/mark_packages_for_destruction_service.rb10
2 files changed, 11 insertions, 0 deletions
diff --git a/app/services/packages/mark_package_for_destruction_service.rb b/app/services/packages/mark_package_for_destruction_service.rb
index 8ccc242ae36..b41f1c0a291 100644
--- a/app/services/packages/mark_package_for_destruction_service.rb
+++ b/app/services/packages/mark_package_for_destruction_service.rb
@@ -11,6 +11,7 @@ module Packages
package.mark_package_files_for_destruction
package.sync_maven_metadata(current_user)
+ package.sync_npm_metadata_cache
service_response_success('Package was successfully marked as pending destruction')
rescue StandardError => e
diff --git a/app/services/packages/mark_packages_for_destruction_service.rb b/app/services/packages/mark_packages_for_destruction_service.rb
index ade9ad2c974..2c81a52ea24 100644
--- a/app/services/packages/mark_packages_for_destruction_service.rb
+++ b/app/services/packages/mark_packages_for_destruction_service.rb
@@ -43,6 +43,7 @@ module Packages
.update_all(status: :pending_destruction)
sync_maven_metadata(loaded_packages)
+ sync_npm_metadata(loaded_packages)
mark_package_files_for_destruction(loaded_packages)
end
@@ -73,6 +74,15 @@ module Packages
)
end
+ def sync_npm_metadata(packages)
+ npm_packages = packages.select(&:npm?)
+ ::Packages::Npm::CreateMetadataCacheWorker.bulk_perform_async_with_contexts(
+ npm_packages,
+ arguments_proc: -> (package) { [package.project_id, package.name] },
+ context_proc: -> (package) { { project: package.project, user: @current_user } }
+ )
+ end
+
def can_destroy_packages?(packages)
packages.all? do |package|
can?(@current_user, :destroy_package, package)