diff --git a/src/alpine_bits_python/alpine_bits_helpers.py b/src/alpine_bits_python/alpine_bits_helpers.py index a9641d3..8308116 100644 --- a/src/alpine_bits_python/alpine_bits_helpers.py +++ b/src/alpine_bits_python/alpine_bits_helpers.py @@ -741,9 +741,30 @@ def create_xml_from_db(list: list[Tuple[Reservation, Customer]]): room_stays = OtaResRetrieveRs.ReservationsList.HotelReservation.RoomStays( room_stay=[room_stay], ) - klick_id = reservation.fbclid or reservation.gclid - + res_id_source = "website" + + if reservation.fbclid != "": + klick_id = reservation.fbclid + res_id_source = "meta" + elif reservation.gclid != "": + klick_id = reservation.gclid + res_id_source = "google" + + + # explicitly set klick_id to None otherwise an empty string will be sent + if klick_id in (None, "", "None"): + klick_id = None + else: # extract string from Column object + klick_id = str(klick_id) + + hotel_res_id_data = HotelReservationIdData( + res_id_type="13", + res_id_value=klick_id, + res_id_source=res_id_source, + res_id_source_context="99tales", + ) + # explicitly set klick_id to None otherwise an empty string will be sent if klick_id in (None, "", "None"): klick_id = None diff --git a/src/alpine_bits_python/alpinebits_server.py b/src/alpine_bits_python/alpinebits_server.py index b8c2e09..a9cfa17 100644 --- a/src/alpine_bits_python/alpinebits_server.py +++ b/src/alpine_bits_python/alpinebits_server.py @@ -53,10 +53,14 @@ class AlpineBitsActionName(Enum): OTA_PING = ("action_OTA_Ping", "OTA_Ping:Handshaking") OTA_READ = ("action_OTA_Read", "OTA_Read:GuestRequests") OTA_HOTEL_AVAIL_NOTIF = ("action_OTA_HotelAvailNotif", "OTA_HotelAvailNotif") - OTA_HOTEL_RES_NOTIF_GUEST_REQUESTS = ( + OTA_HOTEL_RES_NOTIF_GUEST_REQUESTS = ( ## Push Action for Guest Requests "action_OTA_HotelResNotif_GuestRequests", "OTA_HotelResNotif:GuestRequests", ) + OTA_HOTEL_NOTIF_REPORT = ( + "action_OTA_Read", # if read is supported this is also supported + "OTA_NotifReport:GuestRequests", + ) OTA_HOTEL_DESCRIPTIVE_CONTENT_NOTIF_INVENTORY = ( "action_OTA_HotelDescriptiveContentNotif_Inventory", "OTA_HotelDescriptiveContentNotif:Inventory", @@ -548,7 +552,7 @@ class NotifReportReadAction(AlpineBitsAction): """Necessary for read action to follow specification. Clients need to report acknowledgements""" def __init__(self, config: Dict = {}): - self.name = AlpineBitsActionName.OTA_HOTEL_RES_NOTIF_GUEST_REQUESTS + self.name = AlpineBitsActionName.OTA_HOTEL_NOTIF_REPORT self.version = [Version.V2024_10, Version.V2022_10] self.config = config @@ -661,6 +665,7 @@ class AlpineBitsServer: def _initialize_action_instances(self): """Initialize instances of all discovered action classes.""" for capability_name, action_class in self.capabilities.action_registry.items(): + _LOGGER.info(f"Initializing action instance for {capability_name}") self._action_instances[capability_name] = action_class(config=self.config) def get_capabilities(self) -> Dict: @@ -700,6 +705,8 @@ class AlpineBitsServer: # Find the action by request name action_enum = AlpineBitsActionName.get_by_request_name(request_action_name) + + _LOGGER.info(f"Handling request for action: {request_action_name} with action enum: {action_enum}") if not action_enum: return AlpineBitsResponse( f"Error: Unknown action {request_action_name}",