articles.rb 636 B

1234567891011121314151617181920
  1. # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
  2. module Gql::Queries
  3. class Ticket::Articles < BaseQuery
  4. description 'Fetch ticket articles by ticket ID'
  5. argument :ticket, Gql::Types::Input::Locator::TicketInputType, description: 'Ticket locator'
  6. type Gql::Types::Ticket::ArticleType.connection_type, null: false
  7. def resolve(ticket:)
  8. if TicketPolicy.new(context.current_user, ticket).agent_read_access?
  9. ::Ticket::Article.where(ticket: ticket).reorder(:id)
  10. else
  11. ::Ticket::Article.where(ticket: ticket, internal: false).reorder(:id)
  12. end
  13. end
  14. end
  15. end