7  /  12

Update - обновление гостя, комнаты или группы гостей

Описание

Команда производит обновление значений комнаты, гостя, основываясь на фильтре в параметрах.

Направление

PMS -> TurnIP

Метод

POST

Запрос


POST /api/Update HTTP/1.1
Content-Type: application/json
API-KEY: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 511

{
    "update": [
        {
            "filter": {
                "room": "101",
                "guestID": "567896",
                "guestGroupID": "12345"
            },
            "values": {
                "guestname": "Дмитрий Леонидович",
                "checkOutDateTime": "22/03/2024 12:00",
                "mainGuest": true,
                "channelListID": 42,
                "portalID": 3062,
                "language": "ru"
            }
        }
    ]
}

Параметры запроса

Параметр Тип Значение
filter array Структура, содержащая фильтр, который будет применен для обновления.
filter:room string Комната, в которой производятся изменения.
filter:guestID string Идентификатор гостя, изменения по которому производятся.
Идентификатор гостя изначально передается в TurnIP во время поселения гостя командой CheckIn, параметром rooms:guests:guestID
filter:guestGroupID string Идентификатор группы гостей по которой производятся изменения.
Идентификатор группы гостя изначально передается в TurnIP во время поселения гостя командой CheckIn, параметром rooms:guests:guestGroupID
values array Структура со списком значений, которые требуется изменить.
values:guestname string Имя гостя.
values:checkOutDateTime string Время выезда гостя.

Формат "DD/MM/YYYY HH:MM".

Ограничение: время выезда должно быть больше текущего времени. Передача времени выезда меньшего текущего привет к ошибке 400 Bad Request: {"number":20,"message":"Check-out time is less than current."}.
values:mainGuest boolean Устанавливает данного гостя главным в комнате. На период проживания главного гостя применяются параметры channelListID и portalID, если такие заданы. В комнате может быть только один главный гость.

Также см. раздел Главный гость документации TurnIP.
values:channelListID number Индивидуальный список ТВ-каналов, устанавливаемый гостю на период проживания. Список каналов будет применяться к комнате только на период проживания главного гостя в комнате (см. параметр mainGuest).
Идентификатор гостевого портала может быть получен с помощью команды GetChannelList.
values:portalID number Индивидуальный портал, устанавливаемый гостю на период его проживания. Индивидуальный портал будет применяться к комнате только на период проживания главного гостя в комнате (см. параметр mainGuest).
Идентификатор гостевого портала может быть получен с помощью команды GetPortalList.
values:language string Язык портала гостя. Имеет эффект только для главного гостя (см. параметр mainGuest). Если не установлен, используется язык портала по умолчанию.

Ограничения

  • Если в фильтре передана только комната (параметр room) то,
    • Если в комнате есть только один гость, то допустимы все параметры структуры values;
    • Если в комнате более одного гостя, то допустимы все параметры структуры values кроме параметров guestname и mainGuest.
      Такая выборка возвращает более одного гостя. Если попробовать изменить имя гостя или признак главногого гостя на выборке из нескольких гостей, будет выдана ошибка 400 Bad Request {"number":40,"message":"Incompatible parameters."}.
  • Если в фильтре передан только гость (параметр guestID) , то допустимы все параметры структуры values. Если гость в комнате не является главным, и не определяется главным в этой команде, то параметры channelListID и portalID будут проигнорированы.
  • Если в фильтре передана только группа (параметр guestGroupID) , то допустимы все параметры структуры values, кроме параметра mainGuest. Если гость в полученной в выборке не является главным в комнате, то параметры channelListID и portalID будут проигнорированы.

В общем случае, если после применения фильтров получили: 

  • один гость выборке: менять всё. Если гость не является главным, то параметры channelListID и portalID будут проигнорированы.
  • несколько гостей: менять всё, кроме guestname и mainGuest. Но если в гости в пакете по отбору не являются главными, параметры channelListID и portalID будут проигнорированы.

Подробнее о главном госте в системе см. в разделе документации Заезд гостя.

Ответ

TurnIP возвращает код 200 OK в случае успешного выполнения операции либо код 400 Bad Request с описанием ошибки в body в формате {"number":nn,"message":"Error Description."}

Параметры ответа, коды ошибок

Number Message Описание
12 Room XXX not found. В параметре room передан несуществующий в системе номер комнаты.
20 Check-out time is less than current. Время в параметре checkOutDateTime меньше текущего времни.
40 Incompatible parameters. Переданы несовместимые параметры. См. выше Ограничения. Часто при установке параметра guestname и/или mainGuest, когда выборка по фильтру возвращает более одного гостя в комнате.

Примеры

Изменение сроков проживания всех гостей в комнатах 101 и 108


{
    "update": [
        {
            "filter": {
                "room": "101"
            },
            "values": {
                "checkOutDateTime": "23/03/2024 12:00"
            }
        },
        {
            "filter": {
                "room": "108"
            },
            "values": {
                "checkOutDateTime": "23/03/2024 12:00"
            }
        }
    ]
}
}

Изменение имени гостя с идентификатором 567896 во всех связанных с ним комнатах

Гостю 567896 будет назначено новое имя "Дмитрий Леонидович"

{
    "update": [
        {
            "filter": {
                "guestID": "567896"
            },
            "values": {
                "guestname": "Дмитрий Леонидович"
            }
        }
    ]
}

Назначение гостя с идентификатором "567896" главным в комнате "101", установка времени выезда этого гостя, до которого будут действовать определяемые в этой же команде: русский язык портала, индивидуальный список каналов 42 и индивидуальный портал гостя 3062

Доступные списки каналов могут быть получены командой GetChannelList, а доступные порталы гостей командой GetPortalList.

{
    "update": [
        {
            "filter": {
                "room": "101",
                "guestID": "567896"
            },
            "values": {
                "checkOutDateTime": "22/03/2024 12:00"
                ,"mainGuest": true
                ,"channelListID": 42
                ,"portalID": 3062
                ,"language": "ru"
            }
        }
    ]
}

Изменение срока проживания всех гостей группы "12345" во всех занимаемых группой комнатах, установка индивидуального портала для для гостей в этих комнатах

Доступные порталы гостей в гостинице могут быть получены командой GetPortalList.
* Если гость в комнате не является главным, параметр "portalID": будет проигнорирован. Параметры "portalID":, "channelListID":, "language": применяется только к главному гостю в комнате

{
    "update": [
        {
            "filter": {
                "guestGroupID": "12345"
            },
            "values": {
                "checkOutDateTime": "22/03/2024 12:00",
                "portalID": 3062
            }
        }
    ]
}

Установка индивидуального портала 3062 и индивидуального списка каналов 42 для комнат 101 и 108

Индивидуальный портал и индивидуальным список каналов будут применяться до выезда главных гостей в этих комнатах. Подробнее о главном госте в документации TurnIP.
Доступные списки каналов могут быть получены командой GetChannelList, а доступные порталы гостей командой GetPortalList.

{
    "update": [
        {
            "filter": {
                "room": "101"
            },
            "values": {
                "channelListID": 42,
                "portalID": 3062
            }
        },
        {
            "filter": {
                "room": "108"
            },
            "values": {
                "channelListID": 42,
                "portalID": 3062
            }
        }
    ]
}
Нравится0