events/getlist

Список событий.


Ресурс

https://selena-online.ru/rest/v1/events/getlist [GET]

Параметры URL

int:from_eventid - ID события, с которого нужно начинать поиск. Опциональный, но должен быть указан, если не указан параметр from_eventtime.

datetime:from_eventtime - UTC дата/время события, с которого нужно начинать поиск. Опциональный, но должен быть указан, если не указан параметр from_eventid.

int:limit - количество событий в результирующем пакете. По умолчанию, или если limit = -1, длина пакета равна 1000 записей. Если limit = 0, то возвращаются все записи, найденные по условиям выборки. Если limit = -2, возвращаются записи начиная с from_eventtime и до конца дня даты from_eventtime.

string:event - имя события. Опция.

int:objectid - ID объекта размещения. Опция.

int:apartmentid - ID категории номера(каюты). Опция.

int:tourid - ID тура. Опция.

Ответ

Возвращает список событий, произошедших в базе данных системы бронирования.

Список отсортирован по параметру eventid, что соответствует также сортировке по времени возникновения события. Время представлено в UTC.

ВАЖНО!!! При задании параметров objectid, apartmentid и/или tourid в выборку попадут только те события, в которых есть дополнительная информация об objectid,apartmentid и/или tourid, и где эти ID явно указаны и соответствуют фильтру. Те события, в которых нет дополнительной информации о objectid,apartmentid,tourid, будут игнорированы, даже если эти события по существу связаны с указанными в фильре objectid,apartmentid и/или tourid.

Пример результирующего набора в формате JSON:

{
    "begin_eventid": 10,
    "end_eventid": 11,
    "begin_eventtime": "2016-11-16 00:00:00",
    "end_eventtime": "2016-11-16 05:40:37",
    "events": [
        {
        "event": "apartment",
        "action": "UPDATE",
        "id": 4592,
        "eventid": 10
        },
        {
        "event": "apartment",
        "action": "UPDATE",
        "id": 4592,
        "eventid": 11
        },
        {
        "event": "room_place_lock",
        "action": "INSERT",
        "id": 2324,
        "data": {
            "apartmentid": 27,
            "tourid": 85
        },
        "eventid": 75
        },
        {
        "event": "order",
        "action": "UPDATE",
        "id": 20817,
        "data": {
            "baseid": 2,
            "tourid": 815
        },
        "eventid": 757
        }
    ],
}

begin_eventid, end_eventid, begin_eventtime и end_eventtime показывают начальные и конечные ID и время события соответственно. Каждый элемент списка событий содержит описание события:

event - имя события. Указывает на ресурс FrontAPI, с помощью которого можно получить данные об элементе справочника. Возможные события:

  • region: регион
  • object: объект размещения (вид туров для терминологии "Экскурсионные туры")
  • unit: корпус, палуба (гостиница для терминологии "Экскурсионные туры")
  • apartment: категория номера
  • service: услуга
  • sgroup: группа услуг
  • tour: тур
  • tourpack: вид путёвки
  • room: комната, каюта
  • order: заказ, основные данные
  • order_det: заказ, данные туристов
  • order_payment: платежи по заказу
  • aprice: цена размещения
  • sprice: цена услуги
  • quote: фиксированная квота
  • quote_free: квота свободного типа
  • tour_stop: программа тура по маршруту
  • tour_route: гостиницы по маршруту тура
  • room_lock: блокировка комнаты, номера, каюты
  • room_place_lock: блокировка места в номере, каюте

action - вид изменения. INSERT, UPDATE и DELETE указывают на вставку, изменение и удаление элемента справочника соответственно.

id - ID элемента справочника, в котором произошло событие.

eventid - ID события.

data - Опциональный массив с дополнительной информацией, которая при необходимости уточняет контекст окружения, в котором произошло событие. Может содержать идентификаторы элементов справочников, с которыми связано событие.

В описании события order_det параметр id указывает на ID заказа. Само событие происходит при изменении данных одного из туристов.

В описании события room_lock параметр id указывает на ID комнаты (каюты) ресурса roomlist, которая была заблокирована (INSERT) или разблокирована (DELETE). Дополнительный параметр data содержит контекст события.

В описании события room_place_lock параметр id указывает на ID комнаты (каюты) ресурса roomlist, в которой было занято (INSERT) или освобождено (DELETE) одно место. В этом событии есть особенность: оно срабатывает на факт бронирования каждого места в номере, и если бронируется, например, 4-местный номер, то это событие произойдет 4 раза подряд с указанием на одну и ту же комнату (каюту). Это означает, что в таких случаях достаточно вызвать метод только 1 раз. Дополнительный параметр data содержит контекст события.

В описании события tour_route параметр id указывает на ID тура (круиза, маршрута) ресурса tourlist, в котором произошло изменение. В данном случае параметр action не имеет значение, нужно только обновить этот тур.

При планировании схемы синхронизации необходимо понимать, что для обеспечения консистентности справочных данных все события должны обрабатываться последовательно, по порядку следования eventid элементов списка, возвращённого вызовом. Это гарантирует, что разработчик не попытается добавить дочерний элемент справочника, не добавив предварительно родительский элемент. Разработчик может отойти от этого правила, если этого требуют условия эксплуатации API, однако в этом случае нужно тщательно планировать схему запросов и анализировать результаты. При этом нужно иметь ввиду тот факт, что в результирующем списке eventid соседних элементов могут различаться на величину больше 1. Это не явлется ошибкой или нарушением консистентности, а лишь особенностью архитектуры информационной системы.

Гарантированное время жизни события в реестре - одна неделя. Если по каким либо причинам синхронизация не проводилась более одной недели, или выполняется впервые, рекомендуется выполнить полную синхронизацию, которую можно запустить параллельно, не прерывая работу с SyncAPI.

Index SyncAPI