POST /api/RoomList HTTP/1.1
Content-Type: application/json
API-KEY: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 1516
{
"ForceCheckOut": false, //true - выселяет всех гостей из всех номеров перед началом операции
"rooms": [
{
"room": "101", //Комната
"channelListID": 41, //Индивидуальный список ТВ-каналов
"portalID": 3060, //Индивидуальный портал
"language": "ru", //Язык портала
"guests": [
{
"guestname": "Константин Константинович", // Имя гостя //Обязательный
"checkOutDateTime": "24/12/2023 12:00", //Дата выезда гостя //Обязательный
"mainGuest": true, //Основной гость
"guestID": "567896", //идентификатор гостя в PMS
"guestGroupID": "123456654321" //Группа гостя в PMS
},
{
"guestname": "Лидия Петровна",
"checkOutDateTime": "24/12/2023 12:00",
"mainGuest": false,
"guestID": "567897",
"guestGroupID": "123456654321"
},
{
"guestname": "Петр Константинович",
"checkOutDateTime": "24/12/2023 12:00"
}
]
},
{
"room": "108",
"roomChannelListID": 41,
"roomPortalID": 3060,
"roomLanguage": "ru",
"guests": [
{
"guestname": "Дмитрий Владимирович",
"checkOutDateTime": "24/12/2023 12:00",
"mainGuest": true,
"guestID": "567896",
"guestGroupID": "123456654321"
}
]
}
]
}
Параметр "ForceCheckOut"
определяет необходимость выселения всех гостей из всех комнат перед началом операции. Необязательный, значение по умолчанию false
- не выселять.
Остальные параметры запроса полностью аналогичны параметрам запроса команды CheckIn. Параметр newCheckin
не применим в этой команде, но его передача не приведет к ошибке - будет проигнорирован.
200 OK
, синхронизация будет произведена. Смягчение требований было выполнено на тот случай, если в PMS забыли выселить гостя.guestname
, синхронизация будет произведена. Имя такого гостя будет задано в TurnIP как "Гость". Смягчение требований было выполнено на тот случай, если в PMS существует гость с незаданным или пустым именем.
Дополнительно обращаем внимание, что выполнение команды RoomList происходит транзакционно. Перед выполнением команды проверяются все параметры пакета на соответствие ограничений и, если хоть один параметр не совпадает, команда прекращает выполнение.
200 OK
в случае успешного выполнения операции либо код 400 Bad Request
с описанием ошибки в body в формате {"number":nn,"message":"Error Description."}
.200 OK
могут передаваться описания исключений, связанных с временем выезда и именем гостя.
400 Bad Request
команды RoomList полностью соответствуют кодам ответа команды CheckIn за исключением кодов:
{"number":11,"message":"Room field not set. "}
,{"number":12,"message":"Room XXX not found."}
, {"number":17,"message":"Enter the guest's name."}
,{"number":20,"message":"Check-out time is less than current."}
. 200 OK
.
number | room | message | Описание |
---|---|---|---|
100 | XXX | Guest name not set. |
Для комнаты XXX не задан параметр guestname или имя гостя - пустая строка. Имя гостя в TurnIP будет задано как "Гость".
|
101 | XXX | Check-out time is less than current. |
Для комнаты XXX в госте передано время выезда меньше текущего. Время выезда будет установлено в TurnIP как передано. Имя гостя не будет отображаться в портале, даже если этот гость главный, не будут применяться значение из portalID , channelListID и language , поскольку проживание гостя закончилось.
|
111 |
|
Room field not set. |
Обязательное поле комнаты "room" не задано для набора. Набор будет проигнорирован.
|
112 | XXX | Room XXX not found. |
Комната XXX не найдена в системе TurnIP и будет пропущена |
{
"rooms": [
{
"room": "101" //Любой существующий номер комнаты
}
]
}