1# frozen_string_literal: true
2
3module API
4  class DependencyProxy < ::API::Base
5    helpers ::API::Helpers::PackagesHelpers
6
7    feature_category :dependency_proxy
8
9    after_validation do
10      authorize! :admin_group, user_group
11    end
12
13    params do
14      requires :id, type: String, desc: 'The ID of a group'
15    end
16    resource :groups, requirements: API::NAMESPACE_OR_PROJECT_REQUIREMENTS do
17      desc 'Deletes all dependency_proxy_blobs for a group' do
18        detail 'This feature was introduced in GitLab 12.10'
19      end
20      delete ':id/dependency_proxy/cache' do
21        not_found! unless user_group.dependency_proxy_feature_available?
22
23        # rubocop:disable CodeReuse/Worker
24        PurgeDependencyProxyCacheWorker.perform_async(current_user.id, user_group.id)
25        # rubocop:enable CodeReuse/Worker
26
27        status :accepted
28      end
29    end
30  end
31end
32