debian-mirror-gitlab/app/graphql/mutations/dependency_proxy/group_settings/update.rb
2022-04-04 11:22:00 +05:30

49 lines
1.4 KiB
Ruby

# frozen_string_literal: true
module Mutations
module DependencyProxy
module GroupSettings
class Update < Mutations::BaseMutation
graphql_name 'UpdateDependencyProxySettings'
include Mutations::ResolvesGroup
authorize :admin_dependency_proxy
argument :group_path,
GraphQL::Types::ID,
required: true,
description: 'Group path for the group dependency proxy.'
argument :enabled,
GraphQL::Types::Boolean,
required: false,
description: copy_field_description(Types::DependencyProxy::ImageTtlGroupPolicyType, :enabled)
field :dependency_proxy_setting,
Types::DependencyProxy::GroupSettingType,
null: true,
description: 'Group dependency proxy settings after mutation.'
def resolve(group_path:, **args)
group = authorized_find!(group_path: group_path)
result = ::DependencyProxy::GroupSettings::UpdateService
.new(container: group, current_user: current_user, params: args)
.execute
{
dependency_proxy_setting: result.payload[:dependency_proxy_setting],
errors: result.errors
}
end
private
def find_object(group_path:)
resolve_group(full_path: group_path)
end
end
end
end
end