Получите постраничный список панелей управления, к которым у вас есть доступ для просмотра или изменения


Список панелей управления

Получите панели управления, к которым у вас есть доступ для просмотра. Это включает панели управления, которые вы создали, и панели, которые были с вами поделены.

Простой пример

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
    }
  }
}

Входные параметры

DashboardFilterInput

Параметр Тип Обязательный Описание
companyId String! ✅ Да Идентификатор компании для фильтрации панелей управления
projectId String Нет Необязательный идентификатор проекта для фильтрации панелей управления

Параметры сортировки

Значение сортировки Описание
title_ASC Сортировать по заголовку по возрастанию
title_DESC Сортировать по заголовку по убыванию
createdBy_ASC Сортировать по создателю по возрастанию
createdBy_DESC Сортировать по создателю по убыванию
updatedAt_ASC Сортировать по времени обновления по возрастанию
updatedAt_DESC Сортировать по времени обновления по убыванию (по умолчанию)

Параметры пагинации

Параметр Тип По умолчанию Описание
skip Int 0 Количество элементов, которые нужно пропустить
take Int 20 Количество элементов для возврата (макс. 100)

Поля ответа

DashboardPagination

Поле Тип Описание
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 (последние обновления первыми)
  • Используйте сортировку по заголовку для алфавитной организации
  • Объединяйте несколько критериев сортировки для сложных потребностей в упорядочивании

Связанные операции

AI Ассистент

Ответы генерируются с использованием ИИ и могут содержать ошибки.

Как я могу вам помочь?

Спросите меня о чем угодно, связанном с Blue или этой документацией.

Введите для отправки • Shift+Enter для новой строки • ⌘I для открытия