Class: Mutations::Integrations::Exclusions::Delete

Inherits:
BaseMutation
  • Object
show all
Includes:
ResolvesIds
Defined in:
app/graphql/mutations/integrations/exclusions/delete.rb

Constant Summary

Constants inherited from BaseMutation

BaseMutation::ERROR_MESSAGE

Constants included from Gitlab::Graphql::Authorize::AuthorizeResource

Gitlab::Graphql::Authorize::AuthorizeResource::ConfigurationError, Gitlab::Graphql::Authorize::AuthorizeResource::RESOURCE_ACCESS_ERROR

Instance Method Summary collapse

Methods included from ResolvesIds

#resolve_ids

Methods inherited from BaseMutation

#api_user?, authorization, authorization_scopes, authorized?, authorizes_object?, #current_user, #errors_on_object, #load_application_object, #read_only?, #ready?, #unauthorized_object

Methods included from Gitlab::Graphql::Authorize::AuthorizeResource

#authorize!, #authorized_find!, #authorized_resource?, #find_object, #raise_resource_not_available_error!

Instance Method Details

#resolve(integration_name:, project_ids: [], group_ids: []) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'app/graphql/mutations/integrations/exclusions/delete.rb', line 31

def resolve(integration_name:, project_ids: [], group_ids: [])
  authorize!(:global)

  result = ::Integrations::Exclusions::DestroyService.new(
    current_user: current_user,
    projects: projects(project_ids),
    groups: groups(group_ids),
    integration_name: integration_name
  ).execute

  exclusions = result.payload

  # Integrations::Exclusions::DestroyService calls destroy_all in some circumstances which returns a frozen
  # array.  We call dup here to allow entries to be redacted by field extensions.
  exclusions = exclusions.dup if exclusions.frozen?
  {
    exclusions: exclusions,
    errors: result.errors
  }
end