Получите постраничный список панелей управления, к которым у вас есть доступ для просмотра или изменения
Список панелей управления
Получите панели управления, к которым у вас есть доступ для просмотра. Это включает панели управления, которые вы создали, и панели, которые были с вами поделены.
Простой пример
query ListDashboards {
dashboards(filter: { companyId: "company_123" }) {
items {
id
title
createdBy {
id
name
email
}
createdAt
updatedAt
}
pageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
}
}
Расширенный пример
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
}
}
}
Входные параметры
Параметр |
Тип |
Обязательный |
Описание |
companyId |
String! |
✅ Да |
Идентификатор компании для фильтрации панелей управления |
projectId |
String |
Нет |
Необязательный идентификатор проекта для фильтрации панелей управления |
Параметры сортировки
Значение сортировки |
Описание |
title_ASC |
Сортировать по заголовку по возрастанию |
title_DESC |
Сортировать по заголовку по убыванию |
createdBy_ASC |
Сортировать по создателю по возрастанию |
createdBy_DESC |
Сортировать по создателю по убыванию |
updatedAt_ASC |
Сортировать по времени обновления по возрастанию |
updatedAt_DESC |
Сортировать по времени обновления по убыванию (по умолчанию) |
Параметры пагинации
Параметр |
Тип |
По умолчанию |
Описание |
skip |
Int |
0 |
Количество элементов, которые нужно пропустить |
take |
Int |
20 |
Количество элементов для возврата (макс. 100) |
Поля ответа
Поле |
Тип |
Описание |
items |
[Dashboard!]! |
Массив объектов панелей управления |
pageInfo |
PageInfo! |
Информация о пагинации |
Dashboard
Поле |
Тип |
Описание |
id |
ID! |
Уникальный идентификатор панели управления |
title |
String! |
Отображаемое имя панели управления |
createdBy |
User! |
Пользователь, создавший панель управления |
dashboardUsers |
[DashboardUser!] |
Пользователи с доступом к этой панели управления |
createdAt |
DateTime! |
Когда была создана панель управления |
updatedAt |
DateTime! |
Когда панель управления была в последний раз изменена |
DashboardUser
Поле |
Тип |
Описание |
id |
ID! |
Уникальный идентификатор пользователя панели управления |
role |
DashboardRole! |
Роль пользователя (VIEWER или EDITOR) |
user |
User! |
Информация о пользователе |
Контроль доступа
Видимость панели управления
Вы можете видеть только те панели управления, где вы:
- Являетесь создателем панели управления
- Являетесь пользователем, которому был предоставлен доступ через совместное использование панели управления
Необходимые разрешения
- Требуется аутентификация: Вы должны быть авторизованы
- Доступ к компании: Вы должны иметь доступ к указанной компании
- Доступ к проекту: Если фильтруете по проекту, вы должны иметь доступ к этому проекту
Ответы на ошибки
Компания не найдена
{
"errors": [{
"message": "Company not found",
"extensions": {
"code": "COMPANY_NOT_FOUND"
}
}]
}
Проект не найден
{
"errors": [{
"message": "Project not found",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
Общие случаи использования
Список всех панелей управления компании
query CompanyDashboards {
dashboards(filter: { companyId: "company_123" }) {
items {
id
title
createdBy { name }
}
}
}
Список панелей управления, специфичных для проекта
query ProjectDashboards {
dashboards(filter: {
companyId: "company_123"
projectId: "proj_456"
}) {
items {
id
title
}
}
}
Постраничный список панелей управления
query PaginatedDashboards {
dashboards(
filter: { companyId: "company_123" }
skip: 20
take: 10
) {
items {
id
title
}
pageInfo {
hasNextPage
hasPreviousPage
}
}
}
Рекомендации по лучшим практикам
Производительность
- Используйте пагинацию для повышения производительности с большими списками панелей управления
- Запрашивайте только те поля, которые вам нужны в вашем приложении
- Рассмотрите возможность кэширования списков панелей управления для часто запрашиваемых данных
Фильтрация
- Всегда фильтруйте по компании, чтобы обеспечить правильную изоляцию данных
- Используйте фильтрацию по проекту при работе с панелями управления, специфичными для проекта
- Объединяйте фильтры для эффективного сужения результатов
Сортировка
- Сортировка по умолчанию осуществляется по
updatedAt_DESC
(последние обновления первыми)
- Используйте сортировку по заголовку для алфавитной организации
- Объединяйте несколько критериев сортировки для сложных потребностей в упорядочивании
Связанные операции