Проекты в Blue формируют фундаментальную основу для организации пользователей и данных.
Список всех проектов
Запрос projectList
позволяет вам извлекать проекты с мощными возможностями фильтрации, сортировки и пагинации.
Простой пример
query ProjectListQuery {
projectList(filter: { companyIds: ["ENTER COMPANY ID"] }) {
items {
id
uid
slug
name
description
archived
color
icon
createdAt
updatedAt
allowNotification
position
unseenActivityCount
todoListsMaxPosition
lastAccessedAt
isTemplate
automationsCount
totalFileCount
totalFileSize
todoAlias
}
pageInfo {
totalPages
totalItems
page
perPage
hasNextPage
hasPreviousPage
}
}
}
Расширенный пример с фильтрацией и сортировкой
query FilteredProjectList {
projectList(
filter: {
companyIds: ["company-123", "company-456"]
archived: false
isTemplate: false
search: "marketing"
inProject: true
folderId: null # Get root-level projects only
}
sort: [position_ASC, name_ASC]
skip: 0
take: 50
) {
items {
id
name
slug
position
archived
}
totalCount
pageInfo {
totalItems
hasNextPage
}
}
}
Поля проекта
Следующая таблица описывает все доступные поля для каждого проекта в ProjectListQuery
:
Поле | Тип | Описание |
---|---|---|
id | ID! | Уникальный идентификатор проекта |
uid | String! | Удобный для пользователя уникальный идентификатор проекта |
slug | String! | Имя проекта, удобное для URL |
name | String! | Отображаемое имя проекта |
description | String | Краткое описание проекта |
archived | Boolean | Булевое значение, указывающее, архивирован ли проект |
color | String | Цвет, связанный с проектом для визуальной идентификации |
icon | String | Иконка, связанная с проектом для визуальной идентификации |
image | Image | Объект изображения обложки проекта |
createdAt | DateTime! | Временная метка, когда проект был создан |
updatedAt | DateTime! | Временная метка, когда проект был в последний раз обновлен |
allowNotification | Boolean! | Булевое значение, указывающее, включены ли уведомления для проекта |
position | Float! | Числовое значение, представляющее позицию проекта в списке |
unseenActivityCount | Int! | Количество невидимых действий в проекте |
todoListsMaxPosition | Float! | Максимальное значение позиции для списков задач в проекте |
lastAccessedAt | DateTime | Временная метка, когда проект был в последний раз открыт |
isTemplate | Boolean! | Булевое значение, указывающее, является ли проект шаблоном |
isOfficialTemplate | Boolean! | Булевое значение, указывающее, является ли это официальным шаблоном Blue |
automationsCount(isActive: Boolean) | Int! | Количество автоматизаций, связанных с проектом |
totalFileCount | Int | Общее количество файлов в проекте |
totalFileSize | Float | Общий размер всех файлов в проекте (в байтах) |
todoAlias | String | Пользовательский псевдоним для "задачи", используемый в проекте |
category | ProjectCategory! | Категория проекта (CRM, МАРКЕТИНГ и т.д.) |
hideEmailFromRoles | [UserAccessLevel!] | Массив ролей, которые должны скрывать адреса электронной почты |
hideStatusUpdate | Boolean | Булевое значение для скрытия обновлений статуса |
company | Company! | Полные детали объекта компании |
accessLevel(userId: String) | UserAccessLevel | Получить уровень доступа пользователя к конкретному проекту |
folder | Folder | Папка, содержащая этот проект |
features | [ProjectFeature!] | Массив включенных функций проекта |
sequenceCustomField | CustomField | Пользовательское поле, используемое для нумерации последовательностей |
coverConfig | TodoCoverConfig | Конфигурация для изображений обложек задач |
hideRecordCount | Boolean | Нужно ли скрывать количество записей |
showTimeSpentInTodoList | Boolean | Нужно ли показывать время, затраченное на списки задач |
showTimeSpentInProject | Boolean | Нужно ли показывать время, затраченное на проект |
todoFields | [TodoField] | Определения пользовательских полей задач |
Примечание: Вы можете запросить любую комбинацию этих полей в вашем запросе GraphQL.
Параметры пагинации
Объект pageInfo
предоставляет детали пагинации для результатов запроса:
Поле | Тип | Описание |
---|---|---|
totalPages | Int | Общее количество страниц результатов |
totalItems | Int | Общее количество проектов, соответствующих запросу |
page | Int | Номер текущей страницы |
perPage | Int | Количество элементов на странице |
hasNextPage | Boolean! | Булевое значение, указывающее, есть ли следующая страница результатов |
hasPreviousPage | Boolean! | Булевое значение, указывающее, есть ли предыдущая страница результатов |
Параметры запроса
Опции фильтрации (ProjectListFilter)
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
companyIds |
[String!]! | ✅ Да | Массив идентификаторов компаний или слагов для поиска |
ids |
[String!] | Нет | Фильтровать по конкретным идентификаторам проектов |
archived |
Boolean | Нет | Фильтровать по статусу архивирования (true/false) |
isTemplate |
Boolean | Нет | Фильтровать шаблонные проекты (true/false) |
search |
String | Нет | Искать проекты по имени (без учета регистра) |
folderId |
String | Нет | Фильтровать по идентификатору папки. Используйте null для проектов на корневом уровне |
inProject |
Boolean | Нет | Фильтровать по членству пользователя. См. примечание ниже |
Примечание о фильтре inProject
:
true
илиundefined
: Возвращает проекты, членом которых является пользовательfalse
: Возвращает проекты, в которых пользователь НЕ состоит (требуется разрешение владельца компании)- Фильтрация по папкам (
folderId
) работает только тогда, когдаinProject
не являетсяfalse
Опции сортировки (ProjectSort)
Значение | Описание |
---|---|
id_ASC |
Сортировать по ID по возрастанию |
id_DESC |
Сортировать по ID по убыванию |
name_ASC |
Сортировать по имени по возрастанию (A-Z) |
name_DESC |
Сортировать по имени по убыванию (Z-A) |
createdAt_ASC |
Сортировать по дате создания (сначала старые) |
createdAt_DESC |
Сортировать по дате создания (сначала новые) |
updatedAt_ASC |
Сортировать по последнему обновлению (сначала старые) |
updatedAt_DESC |
Сортировать по последнему обновлению (сначала новые) |
position_ASC |
Сортировать по позиции по возрастанию* |
position_DESC |
Сортировать по позиции по убыванию* |
*Сортировка по позиции доступна только при просмотре проектов, членом которых является пользователь (inProject !== false
)
Параметры пагинации
Параметр | Тип | По умолчанию | Описание |
---|---|---|---|
skip |
Int | 0 | Количество записей для пропуска |
take |
Int | 20 | Количество записей для возврата |
Важные примечания
-
Поведение по умолчанию для проектов, в которых нет членов (
inProject: false
):- Исключает архивированные проекты, если фильтр
archived
не установлен явно - Исключает шаблонные проекты, если фильтр
isTemplate
не установлен явно
- Исключает архивированные проекты, если фильтр
-
Ограничения фильтрации по папкам:
- Работает только при отображении проектов пользователя
- Не может быть использован с
inProject: false
- Используйте
folderId: null
, чтобы получить проекты, не находящиеся в какой-либо папке
-
Резервное копирование сортировки:
- Сортировка по позиции игнорируется при просмотре проектов, в которых нет членов
- В таких случаях возвращается сортировка по имени
-
Устаревшие параметры:
orderBy
,after
,before
,first
,last
устарели- Используйте
sort
,skip
иtake
вместо этого