Venues

Разработчикам / REST API для BOOCO Meteor (v 1.x) / Общее API

В данном разделе описываются методы /api/v1/venues/* для работы с помещениями.

Endpoints

Endpoint
Метод
Описание
Queries
Body (JSON)
Результат (data)
Права (ресурс)
Версия
GET

Получение списка всех помещений из коллекции venues

limitskip...query

Venue[]

read:any (venue)

GET

Получение списка всех помещений из коллекции venues

limitskip...query

Venue[]

read:any (venue)

POST

Добавление помещения в коллекцию venues

Venue

create:any (venue)

GET

Получить помещение из коллекции venues по :venueId. В качестве venueId по умолчанию используется name помещения. Чтобы получить по _id, необходимо указать параметр key=_id

key

Venue

read:any (venue)

PUT

Редактирование помещения в коллекции venues по :venueId. В качестве venueId по умолчанию используется name помещения, чтобы получить по _id необходимо указать параметр key=_id

key

Venue (указываются поля, которые нужно обновить)

Venue

update:any (venue)

DELETE

Удаление помещения из коллекции venues по :venueId. В качестве venueId по умолчанию используется name помещения, чтобы получить по _id необходимо указать параметр key=_id

key

delete:any (venue)

POST

Подписка на изменения в коллекции venues (см. описание механизма подписки)

SubscriptionInfo<Venue>

read:any (venue)

POST

Отмена всех подписок для данного :socketId

SubscriptionInfo<Venue>

read:any (venue)

POST

Возвращает список доступных помещений в указанные периоды времени (передаются в теле запроса, как массив) которые текущий пользователь может бронировать (в списке свободных помещений проверяются права create:own (booking))

typelocationsortId

Period

Venue[]

GET

Возвращает список помещений, которые бронировал текущий пользователь, отсортированных по полю createdAt (вначале последние бронирования). Проверка осуществляется по полю organizer, которое должно совпадать с полем email пользователя.

typelocationlimitunique

Venue[]

GET

Возвращает ссылку на изображение для помещения :venueId (или ошибку, если изображения нет)

string

read:any (venue)

GET

Возвращает изображение в формате base64 для помещения :venueId (или ошибку, если изображения нет)

string

read:any (venue)

GET

Возвращает свойство openHours для помещения :venueId

TimePeriod

read:any (venue)

GET

GET

GET

Проверяет можно ли бронировать помещение :venueId в указанный промежуток времени start - end (параметры start, end - обязательные в данном запросе). Если бронирование невозможно, то в поле статус будет error, а в поле message - причина.

startendorganizer

BookingEvent[]

GET

!!!Кандидат на удаление!!!

GET

см. /venues/:venueId/getOpenHours

GET

см. /venues/:venueId/getTimeSlots

GET

см. /venues/:venueId/check

Параметры запроса (Queries)

Queries
Описание
Тип значения
Обязательный
Значение по умолчанию

Определяет, по какому полю делается запрос

string
нет

name

Тип помещения (meeting-room, desk, …)

string
нет

Начало события

TDateISO
Да

Конец события

TDateISO
Да

Email организатора события

string
нет

Параметры URL

Name
Описание
Тип значения

Идентификатор помещения

string

Описание типов

type Venue = {
  _id?: string, // Уникальный идентификатор в формате MongoDB
  venueId?: string | null, // Идентификатор в читаемом виде (например, С3-201)
  name?: string | null, // Название ресурса
  type?: VenueType, // Тип помещения
  description?: string, // Произвольное описание
  hideVenue?: boolean, // Скрывать помещение/ресурс на карте
  userId?: string | null, // TODO: do we need null?
  fixed?: boolean, // Фиксированное рабочее или парковочное место
  noBooking?: boolean, // Не разрешать бронирование
  location?: string, // ID локации (это может быть офис, или группа, или этаж)
  groups?: string[], // Назначенные группы (используются для сопоставления прав)
  timezone?: string // Часовой пояс, в котором находится ресурс
  equipment?: any, // Оборудование
	imageId?: string, // ID изображения из коллекции venueimages
  noConfirmation?: boolean, // Не требуется check-in
  disabled?: boolean, // Выведено из эксплуатации
  calendarSystems?: CalendarSystem[], // Календарные системы, к которым привязана переговорная комната
  openHours?: TimePeriod, // Если задано, то определяет время работы ресурса
  slots?: TimePeriod[] // Если заданы, то бронирование осуществляется по слотам
};

	type Period = { start: TDateISO, end: TDateISO };