Сервер BOOCO Meteor (v 1.x) / Примеры добавления коллекций
Введение
Коллекция places:
- хранит список офисов/зданий/локаций, которые используются в системе BOOCO Meteor на страницах Карта офиса, Переговорные комнаты, Рабочие места и др.;
- загружается в файле places.json в разделе Инструменты администратора.
place, к которому относится ресурс, указывается в Карточке ресурса в поле Расположение.
Добавление коллекции places
- Настройте права для работы с коллекцией places. Для этого в разделе Инструменты администратора → Редактор прав:
- для роли
admin
добавьте ресурсplace
; - в строке ресурса
place
установите доступы: any
для действийread
,create
иupdate
— разрешают просматривать, добавлять и обновлять любые коллекции;own
для действияdelete
— разрешает удалять коллекции, которые добавил сам пользователь;own
для действияexecute
— доступ на исполнение действий с коллекциями, которые добавил сам пользователь.- Создайте файл places.json. Для этого:
- скачайте шаблон:
- укажите нужные данные и сохраните файл с именем places.json.
- Загрузите на сервер BOOCO содержимое файла places.json. Для этого:
- нажмите на значок шестеренки и выберите REST API;
- на странице отправки REST API-запроса в поле Данные скопируйте содержимое файла places.json и сделайте POST-запрос для загрузки на сервер. В поле REST API URL должен быть следующий адрес: http(s)://<адрес сервера>/api/v1/places
success
— данные загружены;access denied
— данные не загружены. Проверьте, корректно ли настроены доступы для работы с коллекциейplaces
. Настройте доступы так, как показано в п. 1, и повторите POST-запрос.- Сбросьте коллекцию
places
в разделе Инструменты администратора → Операции с коллекциями.
После отправки POST-запроса под кнопками в строке status
отобразится результат загрузки данных:
places
на сервер BOOCO каждому place будет автоматически присвоен уникальный id
. places
и импортируйте обновленный файл places.json. Создание файла places.json
Название | Тип | Описание | Вопросы (позже удалю) |
---|---|---|---|
object | Настройки place. Должен быть хотя бы 1 place (при инициализации создается дефолтная локация) | 1. “при инициализации создается дефолтная локация” - что имеется в виду? 2. Правильно ли указан тип? | |
object | Настройки сегмента в составе данного place. Должен быть хотя бы 1 сегмент. Примеры сегментов: этаж, левое крыло здания и др. | 1. Всё ли верно в колонке “Описание”? 2. Правильно ли указан тип? |
Название | Тип | Описание | Вопросы (позжде удалю) |
---|---|---|---|
string | Уникальный идентификатор place | 1. Есть ли требования к количеству символов в uuid? 2. В каком формате указывается uuid (латиница, цифры, дефис и др.)? | |
string | Уникальное имя place | Всё ли верно в колонке “Описание”? | |
string | Адрес place | ||
string | Дополнительная информация о place | ||
list | Список сегментов в составе place. Указывается в формате: | Всё ли верно в колонке “Описание”, в том числе в примере формата? |
Название | Тип | Описание | Вопросы (позжде удалю) |
---|---|---|---|
string | Уникальный идентификатор сегмента в составе place | 1. Есть ли требования к количеству символов в uuid сегмента? 2. В каком формате указывается uuid (латиница, цифры, дефис и др.)? | |
string | Уникальное имя сегмента | ||
string | Имя файла с картой сегмента. Указывается в формате | Всё ли верно в колонке “Описание”? | |
string | Дополнительная информация о сегменте | ||
number | Ранг сортировки: приоритет при отображении в списке с выбором place в поле Расположение в Карточке ресурса (чем ниже, тем ближе к началу списка) | Всё ли верно в колонке “Описание”? |
Пример файла places.json:
interface IPlace extends IWithTitles {
uuid: Company-center1;
name: Москва;
address?: Москва, ул. Тестовая, 1;
description?: Центральный офис;
segments?: IPlaceSegment[Сектор A, Сектор B];
}
interface ISegment extends IWithTitles {
uuid: sector-A;
name: Сектор A;
map?: sectorA-map.svg;
description?: Сектор A с переговорными комнатами;
rang?: 1;
}
interface ISegment extends IWithTitles {
uuid: sector-B;
name: Сектор B;
map?: sectorB-map.svg;
description?: Сектор B - опенспейс на 2-м этаже;
rang?: 2;
}
interface IPlace extends IWithTitles {
uuid: Company-regions2;
name: Региональные офисы;
address?: Россия;
description?: Офисы в Пензе и Нижнем Новгороде;
segments?: IPlaceSegment[Пенза, Нижний Новгород];
}
interface ISegment extends IWithTitles {
uuid: penza;
name: Пенза;
map?: penza-map.svg;
description?: Пенза, ул. Западная, д. 100, этаж 2, каб. 2-12;
rang?: 1;
}
interface ISegment extends IWithTitles {
uuid: nn;
name: Нижний Новгород;
map?: nn-map.svg;
description?: Нижний Новгород, ул. Восточная, д. 99, этаж 3;
rang?: 2;
}