# Коллекция `/api/collection` методы. По умолчанию эти методы работают с коллекциями в пространстве имен 'default', которое содержит такие вещи, как панели инструментов и карточки. Также существуют другие пространства имен коллекций, такие как :snippet (в интерфейсе пользователя называется "Папки сниппетов"). Эти пространства имен являются полностью независимыми иерархиями. Чтобы использовать эти конечные точки для других пространств имен коллекций, вы можете передать параметр ?namespace= (например, ?namespace=snippet). ## `GET /api/collection/` Получить список всех коллекций, для которых текущий пользователь имеет разрешения на чтение (свойство :can_write возвращается как дополнительное свойство каждой коллекции, так что вы можете узнать, над какой из них у вас есть разрешения на запись). По умолчанию возвращаются неархивированные коллекции, но вместо этого вы можете показать архивные, передав ?archived=true. Пользователь администратор может видеть все коллекции. Чтобы скрыть коллекции других пользователей вы можете передать `?exclude-other-user-collections=true` Если personal-only равно `true`, то возвращаются только персональные коллекции, где `personal_owner_id` не равен `nil`. ### Параметры: * **`archived`** допустимая логическая строка (`true` или `false`) или null. * **`exclude-other-user-collections`** допустимая логическая строка (`true` или `false`) или null. * **`namespace`** непустая строка или null. * **`personal-only`** обнуляемое значение должно быть допустимой булевой строкой ('true' или 'false'). ## `GET /api/collection/:id` Получить конкретную коллекцию с добавленными стандартными данными. ### Параметры: * **`id`** целое число больше нуля. ## `GET /api/collection/:id/items` Получить определенные элементы коллекции со следующими параметрами: * `models` - включает только объекты определенного набора `моделей`. Если не указано, возвращает объекты всех моделей * `archived` - когда `true`, возвращать заархивированные объекты *вместо* разархивированных. По умолчанию - `false`. * `pinned_state`: + когда `is_pinned` - возвращать только закрепленные объекты; + когда `is_not_pinned` - возвращать только незакрепленные объекты; + когда `all` - вернуть все. Является значением по умолчанию. ### Параметры: * **`id`** целое число больше нуля. * **`models`** последовательность из следующих элементов: `dashboard`, `dataset`, `no_models`, `timeline`, `snippet`, `collection`, `pulse`, `card`; может быть пустой; или один из элементов `dashboard`, `dataset`, `no_models`, `timeline`, `snippet`, `collection`, `pulse`, `card`. * **`archived`** допустимая логическая строка (`true` или `false`) или null. * **`pinned_state`** один из элементов `is_not_pinned`, `is_pinned`, `all` или null. * **`sort_column`** один из элементов `model`, `name`, `last_edited_by`, `last_edited_at` или null. * **`sort_direction`** один из элементов `desc`, `asc` или null. ## `GET /api/collection/:id/timelines` Получить `timelines` конкретной коллекции. ### Параметры: * **`id`** целое число больше нуля. * **`include`** значение должно быть равно `events` или null. * **`archived`** логическое значение или null. ## `GET /api/collection/graph` Получить граф всех разрешений для всех коллекций. Вы должны обладать правами суперпользователя, чтобы использовать этот метод. ### Параметры: * **`namespace`** непустая строка или null. ## `GET /api/collection/root` Возвращает объект корневой коллекции со стандартными деталями. ### Параметры: * **`namespace`** непустая строка или null. ## `GET /api/collection/root/items` Получить объекты, которые текущий пользователь должен видеть на своем базовом уровне. Как упоминалось ранее, коллекция "Root" на самом деле не существует как конкретная строка в базе данных приложения: это просто виртуальная коллекция, где элементы хранятся без привязки к `collection_id`. Однако у нее есть свой собственный набор разрешений. Этот метод фактически будет показывать объекты без `collection_id` для пользователей, которые имеют разрешения на корневую коллекцию, для пользователей же без разрешений мы просто покажем объекты, которые имеют эффективное расположение "/". Этот метод предназначен для показа "Представления корневой папки" для текущего пользователя, поэтому он сможет увидеть все объекты верхнего уровня, к которым у него есть доступ. По умолчанию будет показано пространство имен Коллекций 'по умолчанию'; чтобы просмотреть другое пространство имен, например `snippets`, вы можете передать параметр ?namespace=. ### Параметры: * **`models`** последовательность из следующих элементов: `dashboard`, `dataset`, `no_models`, `timeline`, `snippet`, `collection`, `pulse`, `card`; может быть пустой; или один из элементов `dashboard`, `dataset`, `no_models`, `timeline`, `snippet`, `collection`, `pulse`, `card`. * **`archived`** допустимая логическая строка (`true` или `false`) или null. * **`namespace`** непустая строка или null. * **`pinned_state`** один из элементов `is_not_pinned`, `is_pinned`, `all` или null. * **`sort_column`** один из элементов `model`, `name`, `last_edited_by`, `last_edited_at` или null. * **`sort_direction`** один из элементов `desc`, `asc` или null. ## `GET /api/collection/root/timelines` Получить timelines основной коллекции. ### Параметры: * **`include`** значение должно быть равно `events` или null. * **`archived`** логическое значение или null. ## `GET /api/collection/tree` Аналогично `GET /`, возвращает древовидную структуру коллекций, например: ``` [{:name "A" :below #{:card :dataset} :children [{:name "B"} {:name "C" :here #{:dataset :card} :below #{:dataset :card} :children [{:name "D" :here #{:dataset} :children [{:name "E"}]} {:name "F" :here #{:card} :children [{:name "G"}]}]}]} {:name "H"}] ``` Ключи "here" и "below" указывают на типы элементов на конкретном уровне дерева (here) и в его поддереве (below). ### Параметры: * **`exclude-archived`** логическое значение или null. * **`exclude-other-user-collections`** логическое значение или null. * **`namespace`** непустая строка или null. * **`shallow`** логическое значение или null. * **`collection-id`** целое число больше нуля или null. ## `POST /api/collection/` Создать новую коллекцию. ### Параметры: * **`name`** непустая строка. * **`description`** непустая строка или null. * **`parent_id`** целое число больше нуля или null. * **`namespace`** непустая строка или null. * **`authority_level`** значение одно из `official` или null. ## `PUT /api/collection/:id` Изменить существующую коллекцию, включая ее архивирование, разархивирование или перемещение. ### Параметры: * **`id`** целое число больше нуля. * **`name`** непустая строка или null. * **`color`** null или строка, соответствующая регулярному выражению `^#[0-9A-Fa-f]{6}$`. * **`description`** непустая строка или null. * **`archived`** допустимая логическая строка (`true` или `false`) или null. * **`parent_id`** целое число больше нуля или null. * **`authority_level`** значение одно из `official` или null. * **`collection-updates`** ## `PUT /api/collection/graph` Выполните пакетное обновление разрешений коллекций, передав измененный граф. Эта операция перезапишет элементы графа, которые получены из запроса и оставит остальные элементы графа нетронутыми. Вы должны обладать правами суперпользователя, чтобы использовать этот метод. ### Параметры: * **`namespace`** непустая строка или null. * **`body`** карта. --- [<< Назад к разделу API](./api-documentation.md)