overviews.rb 875 B

123456789101112131415161718192021222324
  1. # Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. module Gql::Queries
  3. class Ticket::Overviews < BaseQuery
  4. description 'Ticket overviews available in the system'
  5. argument :ignore_user_conditions, Boolean, description: 'Include additional overviews by ignoring user conditions'
  6. argument :filter_overview_ids, [GraphQL::Types::ID], required: false, loads: Gql::Types::OverviewType, description: 'Overview IDs to filter for'
  7. type [Gql::Types::OverviewType], null: false
  8. def resolve(ignore_user_conditions:, filter_overviews: nil)
  9. # This effectively scopes the overviews by `:use?` permission.
  10. scope = ::Ticket::Overviews.all(current_user: context.current_user, ignore_user_conditions:)
  11. if filter_overviews
  12. return scope.where(id: filter_overviews.pluck(:id))
  13. end
  14. scope
  15. end
  16. end
  17. end