Recuperar uma lista paginada de painéis aos quais você tem acesso para visualizar ou modificar
Listar Painéis
Recupere painéis aos quais você tem acesso para visualizar. Isso inclui painéis que você criou e painéis que foram compartilhados com você.
Exemplo Básico
query ListDashboards {
dashboards(filter: { companyId: "company_123" }) {
items {
id
title
createdBy {
id
name
email
}
createdAt
updatedAt
}
pageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
}
}
Exemplo Avançado
query ListDashboardsAdvanced {
dashboards(
filter: {
companyId: "company_123"
projectId: "proj_456" # Optional: filter by project
}
sort: [updatedAt_DESC, title_ASC]
skip: 0
take: 10
) {
items {
id
title
createdBy {
id
name
email
}
dashboardUsers {
id
role
user {
id
name
email
}
}
createdAt
updatedAt
}
pageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
}
}
Parâmetros de Entrada
Parâmetro |
Tipo |
Obrigatório |
Descrição |
companyId |
String! |
✅ Sim |
ID da empresa para filtrar painéis |
projectId |
String |
Não |
ID do projeto opcional para filtrar painéis |
Opções de Ordenação
Valor de Ordenação |
Descrição |
title_ASC |
Ordenar por título em ordem crescente |
title_DESC |
Ordenar por título em ordem decrescente |
createdBy_ASC |
Ordenar por criador em ordem crescente |
createdBy_DESC |
Ordenar por criador em ordem decrescente |
updatedAt_ASC |
Ordenar por hora de atualização em ordem crescente |
updatedAt_DESC |
Ordenar por hora de atualização em ordem decrescente (padrão) |
Parâmetros de Paginação
Parâmetro |
Tipo |
Padrão |
Descrição |
skip |
Int |
0 |
Número de itens a serem pulados |
take |
Int |
20 |
Número de itens a serem retornados (máx. 100) |
Campos de Resposta
Campo |
Tipo |
Descrição |
items |
[Dashboard!]! |
Array de objetos de painel |
pageInfo |
PageInfo! |
Informações de paginação |
Dashboard
Campo |
Tipo |
Descrição |
id |
ID! |
Identificador único para o painel |
title |
String! |
Nome exibido do painel |
createdBy |
User! |
Usuário que criou o painel |
dashboardUsers |
[DashboardUser!] |
Usuários com acesso a este painel |
createdAt |
DateTime! |
Quando o painel foi criado |
updatedAt |
DateTime! |
Quando o painel foi modificado pela última vez |
DashboardUser
Campo |
Tipo |
Descrição |
id |
ID! |
Identificador único para o usuário do painel |
role |
DashboardRole! |
Função do usuário (VISUALIZADOR ou EDITOR) |
user |
User! |
Informações do usuário |
Controle de Acesso
Visibilidade do Painel
Você só pode ver painéis onde você é:
- O criador do painel
- Acesso explicitamente concedido via compartilhamento de painel
Permissões Necessárias
- Autenticação Necessária: Você deve estar logado
- Acesso à Empresa: Você deve ter acesso à empresa especificada
- Acesso ao Projeto: Se filtrando por projeto, você deve ter acesso a esse projeto
Respostas de Erro
Empresa Não Encontrada
{
"errors": [{
"message": "Company not found",
"extensions": {
"code": "COMPANY_NOT_FOUND"
}
}]
}
Projeto Não Encontrado
{
"errors": [{
"message": "Project not found",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
Casos de Uso Comuns
Listar Todos os Painéis da Empresa
query CompanyDashboards {
dashboards(filter: { companyId: "company_123" }) {
items {
id
title
createdBy { name }
}
}
}
Listar Painéis Específicos do Projeto
query ProjectDashboards {
dashboards(filter: {
companyId: "company_123"
projectId: "proj_456"
}) {
items {
id
title
}
}
}
Lista de Painéis Paginada
query PaginatedDashboards {
dashboards(
filter: { companyId: "company_123" }
skip: 20
take: 10
) {
items {
id
title
}
pageInfo {
hasNextPage
hasPreviousPage
}
}
}
Melhores Práticas
Desempenho
- Use paginação para melhor desempenho com grandes listas de painéis
- Solicite apenas os campos que você precisa em sua aplicação
- Considere armazenar em cache listas de painéis para dados acessados com frequência
Filtragem
- Sempre filtre por empresa para garantir o isolamento adequado dos dados
- Use filtragem de projeto ao trabalhar com painéis específicos de projeto
- Combine filtros para restringir resultados de forma eficiente
Ordenação
- A ordenação padrão é por
updatedAt_DESC
(mais recentemente atualizado primeiro)
- Use ordenação por título para organização alfabética
- Combine múltiplos critérios de ordenação para necessidades de ordenação complexas
Operações Relacionadas