[2025-09-10 07:03:46] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":null,"Route":"https://omnibees.clubsolaris.com/","Data":[]},"response":{"status":405,"type":"application/json","body":{"message":"Not allowed   "}}} {"uid":"051b175"}
[2025-09-10 08:16:50] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/full_test?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du"}},"response":{"status":200,"type":"text/html; charset=UTF-8","body":"<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>Document</title>\n  \n  <style>\n    body {\n      background: #d5d2d2 !important;\n      font-family: Arial, sans-serif;\n    }\n    #rooms_list.disabled {\n      pointer-events: none;\n    }\n  </style>\n\n  <!-- You MUST include jQuery 3.4+ before Fomantic -->\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js\"></script>\n  <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.9.4/semantic.min.css\">\n  <script src=\"https://cdnjs.cloudflare.com/ajax/libs/fomantic-ui/2.9.4/semantic.min.js\"></script>\n\n  <script src=\"https://pfau-software.de/json-viewer/dist/iife/index.js\"></script>\n  <script>\n    function setActiveMenuItem() {\n      const path = window.location.hash;\n      const menuItems = document.querySelectorAll('.ui.menu .item');\n      menuItems.forEach(item => {\n        if (item.getAttribute('href') === path) {\n          item.classList.add('active');\n        } else {\n          item.classList.remove('active');\n        }\n      });\n    }\n\n    function createInput(id, name, placeholder,type,value) {\n      const input = document.createElement(\"input\");\n      input.id = id;\n      input.name = name;\n      input.placeholder = placeholder;\n      input.className = \"ui input\";\n      input.type = type;\n      input.value = value;\n      return input;\n    }\n\n    function createFormField(id, name, placeholder,type,value,label_text) {\n      const field = document.createElement(\"div\");\n      field.className = \"field\";\n      const label = document.createElement(\"label\");\n      label.htmlFor = id;\n      label.textContent = label_text ?? placeholder;\n      field.appendChild(label);\n      field.appendChild(createInput(id, name, placeholder,type,value));\n      return field;\n    }\n\n    function pings(event) {\n      const jsonViewerContainer = document.getElementById(\"jsonViewerContainer\");\n      jsonViewerContainer.classList.add(\"loading\");\n      jsonViewerContainer.classList.add(\"disabled\");\n      fetch('/Omnibees/ping?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du')\n        .then(response => response.json())\n        .then(data => {\n          jsonViewer.data = data;\n        })\n        .catch(error => console.error('Error:', error))\n        .finally(() => {\n          jsonViewerContainer.classList.remove(\"loading\");\n          jsonViewerContainer.classList.remove(\"disabled\");\n          event.target.classList.add(\"active\");\n          setActiveMenuItem();\n        });\n    }\n\n    function hotelSearch(event) {\n      const jsonViewerContainer = document.getElementById(\"jsonViewerContainer\");\n      jsonViewerContainer.classList.add(\"loading\");\n      jsonViewerContainer.classList.add(\"disabled\");\n      fetch('/Omnibees/HotelSearch?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&checkIn=2023-10-01&checkOut=2023-10-02&cityCode=NYC')\n        .then(response => response.json())\n        .then(data => {\n          jsonViewer.data = data;\n        })\n        .catch(error => console.error('Error:', error))\n        .finally(() => {\n          jsonViewerContainer.classList.remove(\"loading\");\n          jsonViewerContainer.classList.remove(\"disabled\");\n          event.target.classList.add(\"active\");\n          setActiveMenuItem();\n        });\n    }\n\n    function GetHotelDescriptiveInfo(event, hotelCode = 198335) {\n      const jsonViewerContainer = document.getElementById(\"jsonViewerContainer\");\n      jsonViewerContainer.classList.add(\"loading\");\n      jsonViewerContainer.classList.add(\"disabled\");\n      fetch(`/Omnibees/GetHotelDescriptiveInfo?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=${hotelCode}`)\n        .then(response => response.json())\n        .then(data => {\n          jsonViewer.data = data;\n\n        })\n        .catch(error => console.error('Error:', error))\n        .finally(() => {\n          jsonViewerContainer.classList.remove(\"loading\");\n          jsonViewerContainer.classList.remove(\"disabled\");\n          event.target.classList.add(\"active\");\n          setActiveMenuItem();\n        });\n    }\n\n    function ResortSelector(Container,resorts){\n      let hotel_selector = createDropdown(\"hotel_selector\", \"hotel_selector\", resorts);\n\n      let resort_selector = document.createElement(\"div\");\n      resort_selector.className = \"field\";\n\n      let resort_label = document.createElement(\"label\");\n      resort_label.textContent = \"Select a hotel\";\n      resort_label.htmlFor = \"hotel_selector\";\n\n      resort_selector.appendChild(resort_label);\n      resort_selector.appendChild(hotel_selector);\n\n      Container.appendChild(resort_selector);\n\n      let rates_selector = document.createElement(\"div\");\n      rates_selector.className = \"field\";\n      let rates_label = document.createElement(\"label\");\n      rates_label.textContent = \"Select a rate plan\";\n      rates_label.htmlFor = \"rates_selector\";\n\n      rates_selector.appendChild(rates_label);\n      let rates_selector_input = document.createElement(\"select\");\n      rates_selector_input.id = \"rates_selector\";\n      rates_selector_input.name = \"rates_selector\";\n      rates_selector_input.className = \"ui loading disabled dropdown\";\n      rates_selector.appendChild(rates_selector_input);\n      Container.appendChild(rates_selector);\n\n      // Initialize the dropdown\n      $(hotel_selector).dropdown(\n        { \n          placeholder: 'Select a hotel', \n          onChange: function(value) {\n            \n            GetHotelRatePlans(event, value, function(data){\n              // Clear previous options\n              rates_selector_input.innerHTML = '';\n              \n              // Populate the rates selector with new options\n              data.RatePlans.RatePlan\t.forEach(rate => {\n                let option = document.createElement(\"option\");\n                option.value = rate.RatePlanID;\n                option.textContent = rate.RatePlanName;\n                rates_selector_input.appendChild(option);\n              });\n\n              // Reinitialize the dropdown\n              $(rates_selector_input).dropdown();\n              $(rates_selector_input).parent().removeClass(\"disabled loading\");\n            }\n          );\n      } });\n    }\n    \n    function createRatesSelector(rates,selector){\n\n    }\n\n    function Calendars(Container){\n      let cin = createDateField(\"checkIn\", \"checkIn\", \"2025-10-01\");\n      let cinContainer = document.createElement(\"div\");\n      cinContainer.className = \"field\";\n      \n      let cinLabel = document.createElement(\"label\");\n      cinLabel.textContent = \"Check In\";\n      cinLabel.htmlFor = \"checkIn\";\n      cinContainer.appendChild(cinLabel);\n      cinContainer.appendChild(cin);\n\n\n      let cout = createDateField(\"checkOut\", \"checkOut\", \"2025-10-02\");\n      let coutContainer = document.createElement(\"div\");\n      coutContainer.className = \"field\";\n\n      let coutLabel = document.createElement(\"label\");\n      coutLabel.textContent = \"Check Out\";\n      coutLabel.htmlFor = \"checkOut\";\n      coutContainer.appendChild(coutLabel);\n      coutContainer.appendChild(cout);\n\n\n      Container.appendChild(cinContainer);\n      Container.appendChild(coutContainer);\n\n      $(cin).calendar({\n        type: 'date',\n        endCalendar: $(\"#checkOut\"),\n        formatter: {\n          date: 'YYYY-MM-DD'\n        }\n      });\n      $(cout).calendar({\n        type: 'date',\n        startCalendar: $(\"#checkIn\"),\n        formatter: {\n          date: 'YYYY-MM-DD'\n        }\n      });\n\n    }\n\n    function PaxSelector(Container){\n\n      let adults = document.createElement(\"input\");\n      adults.type = \"number\";\n      adults.name = \"adults\";\n      adults.id = \"adults\";\n      adults.value = 1;\n      adults.className = \"ui input\";\n      \n      let adultsLabel = document.createElement(\"label\");\n      adultsLabel.textContent = \"Adults\";\n      adultsLabel.htmlFor = \"adults\";\n      \n      let adultsDiv = document.createElement(\"div\");\n      adultsDiv.className = \"ui input\";\n      adultsDiv.appendChild(adults);\n\n      let adultsField = document.createElement(\"div\");\n      adultsField.className = \"field\";\n      adultsField.appendChild(adultsLabel);\n      adultsField.appendChild(adultsDiv);\n      Container.appendChild(adultsField);\n\n      let childs = document.createElement(\"input\");\n      childs.type = \"number\";\n      childs.name = \"childs\";\n      childs.id = \"childs\";\n      childs.value = 0;\n      childs.className = \"ui input\";\n      \n      let childsLabel = document.createElement(\"label\");\n      childsLabel.textContent = \"Childs\";\n      childsLabel.htmlFor = \"childs\";\n      \n      let childsDiv = document.createElement(\"div\");\n      childsDiv.className = \"ui input\";\n      childsDiv.appendChild(childs);\n\n      let childsField = document.createElement(\"div\");\n      childsField.className = \"field\";\n      childsField.appendChild(childsLabel);\n      childsField.appendChild(childsDiv);\n      Container.appendChild(childsField);\n\n      let childs_ages = document.createElement(\"input\");\n      childs_ages.type = \"text\";\n      childs_ages.name = \"childs_ages\";\n      childs_ages.id = \"childs_ages\";\n      childs_ages.value = \"\";\n      childs_ages.className = \"ui input\";\n\n      let childs_agesLabel = document.createElement(\"label\");\n      childs_agesLabel.textContent = \"Childs Ages\";\n      childs_agesLabel.htmlFor = \"childs_age\";\n\n      let childsDiv_age = document.createElement(\"div\");\n      childsDiv_age.className = \"ui input\";\n      childsDiv_age.appendChild(childs_ages);\n\n      let childsField_age = document.createElement(\"div\");\n      childsField_age.className = \"field\";\n      childsField_age.appendChild(childs_agesLabel);\n      childsField_age.appendChild(childsDiv_age);\n      Container.appendChild(childsField_age);\n    }\n\n    function ShowReservationStartForm(event){\n      let viewArea = document.getElementById(\"viewArea\");\n      viewArea.innerHTML = \"\";\n      \n      let Container = document.createElement(\"div\");\n      Container.className = \"ui form segment\";\n      viewArea.appendChild(Container);\n\n      let header = document.createElement(\"h3\");\n      header.textContent = \"Hotel Availability Calendar\";\n      header.className = \"ui header\";\n      Container.appendChild(header);\n      \n      let resorts = [\n        { value: 198335, text: \"Turim Presidente Hotel DEMO\" },\n        { value: 198336, text: \"Nacional Inn\" },\n        { value: 198337, text: \"Selina Geres DEMO\" },\n        { value: 198340, text: \"City Garden Hotels\" },\n        { value: 198341, text: \"Hotel Urban Center Bogota DEMO\" }\n      ];\n\n      let main_row = document.createElement(\"div\");\n      main_row.className = \"two fields\";\n      Container.appendChild(main_row);\n\n      ResortSelector(main_row, resorts);\n      \n\n      let second_row = document.createElement(\"div\");\n      second_row.className = \"fields\";\n      Container.appendChild(second_row);\n\n      Calendars(second_row);\n\n      let third_row = document.createElement(\"div\");\n      third_row.className = \"fields\";\n      Container.appendChild(third_row);\n      PaxSelector(second_row);\n\n      let fourth_row = document.createElement(\"div\");\n      fourth_row.className = \"fields\";\n      Container.appendChild(fourth_row);\n\n\n      let searchButton = document.createElement(\"button\");\n      searchButton.className = \"ui primary button\";\n      searchButton.textContent = \"Search Availability\";\n      searchButton.onclick = function() {\n        GetHotelAvail(event);\n      };\n\n      \n\n      let btnContainer = document.createElement(\"div\");\n      btnContainer.className = \"sixteen wide field\";\n      btnContainer.appendChild(searchButton);\n\n      let searchButton2 = document.createElement(\"button\");\n      searchButton2.className = \"ui orange button\";\n      searchButton2.textContent = \"second search\";\n      searchButton2.onclick = function() {\n        HotelAvailCalendar(event);\n      };\n      btnContainer.appendChild(searchButton2);\n\n      fourth_row.appendChild(btnContainer);\n\n\n      let rooms_segment = document.createElement(\"div\");\n      rooms_segment.className = \"ui segment\";\n\n      let rooms_list = document.createElement(\"div\");\n      rooms_list.className = \"ui list\";\n      rooms_list.id = \"rooms_list\";\n\n      let rooms_header = document.createElement(\"h4\");\n      rooms_header.textContent = \"Available Rooms\";\n      rooms_header.className = \"ui header\";\n      rooms_segment.appendChild(rooms_header);\n\n      rooms_segment.appendChild(rooms_list);\n\n      viewArea.appendChild(rooms_segment);\n\n      let warnings_area = document.createElement(\"div\");\n      warnings_area.className = \"ui list\";\n      warnings_area.id = \"warnings_area\";\n      viewArea.appendChild(warnings_area);\n\n      event.target.classList.add(\"active\");\n      setActiveMenuItem();\n    }\n\n\n    function showRooms(rooms,rates,reservation_details){\n\n      let rooms_list = document.getElementById(\"rooms_list\");\n      rooms_list.innerHTML = \"\"; // Clear previous rooms\n\n      if (!rooms || rooms.length === 0) {\n        let noRoomsMessage = document.createElement(\"div\");\n        noRoomsMessage.textContent = \"No rooms available for the selected dates.\";\n        noRoomsMessage.className = \"ui message\";\n        rooms_list.appendChild(noRoomsMessage);\n        return;\n      }\n      \n\n      rooms.forEach(room => {\n        let roomItem = document.createElement(\"div\");\n        roomItem.className = \"item\";\n\n        let roomContent = document.createElement(\"div\");\n        roomContent.className = \"content\";\n\n        let roomHeader = document.createElement(\"div\");\n        roomHeader.className = \"header\";\n        roomHeader.textContent = `${room.RoomID} - ${room.RoomName}`;\n\n        let roomDescription = document.createElement(\"div\");\n        roomDescription.className = \"description\";\n        roomDescription.textContent = `${room.RoomDescription.Description}`;\n\n        roomContent.appendChild(roomHeader);\n        roomContent.appendChild(roomDescription);\n        roomItem.appendChild(roomContent);\n\n        rooms_list.appendChild(roomItem);\n\n        let floatingDiv = document.createElement(\"div\");\n        floatingDiv.className = \"right floated content\";\n\n        let price = document.createElement(\"div\");\n        price.className = \"ui small header\";\n        price.setAttribute('data-idroom', room.RoomID);\n        floatingDiv.appendChild(price);\n\n        let bookButton = document.createElement(\"button\");\n        bookButton.className = \"ui orange button\";\n        bookButton.textContent = \"Book Now\";\n        bookButton.onclick = function() {\n          // Implement booking functionality here\n          //alert(`Booking for room: ${room.RoomID}`);\n          reservation_details.roomCode = room.RoomID;\n          startCheckout(reservation_details);\n        };\n        floatingDiv.appendChild(bookButton);\n        roomItem.appendChild(floatingDiv);\n      });\n\n    }\n\n    function HotelAvailCalendar(){\n       let hotelCode = document.getElementById(\"hotel_selector\").value;\n      let checkIn = document.getElementById(\"checkIn_field\").value;\n      let checkOut = document.getElementById(\"checkOut_field\").value;\n      let adultsCount = document.getElementById(\"adults\").value;\n      let childsCount = document.getElementById(\"childs\").value;\n      let ratesPlan = document.getElementById(\"rates_selector\").value;\n\n      jsonViewerContainer.classList.add(\"loading\");\n      jsonViewerContainer.classList.add(\"disabled\");\n\n      const postData = {\n        api_key: 'yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du',\n        hotelCode: hotelCode,\n        checkIn: checkIn,\n        checkOut: checkOut,\n        ratesPlan: ratesPlan,\n        guests: {\n          adults: adultsCount,\n          children: childsCount\n        }\n      };\n\n      fetch(`/Omnibees/HotelAvailCalendar`,{\n          method: 'POST',\n          headers: {\n            'Content-Type': 'application/json',\n            // You can also use 'application/x-www-form-urlencoded' if needed\n          },\n          body: JSON.stringify(postData)\n        })\n        .then(response => response.json())\n        .then(data => {\n          jsonViewer.data = data;\n        })\n        \n        .catch(error => console.error('Error:', error))\n        .finally(() => {\n          jsonViewerContainer.classList.remove(\"loading\");\n          jsonViewerContainer.classList.remove(\"disabled\");\n          \n        });\n    }\n\n    function GetHotelRatePlans(event,resort,action){\n      const jsonViewerContainer = document.getElementById(\"jsonViewerContainer\");\n      jsonViewerContainer.classList.add(\"loading\");\n      jsonViewerContainer.classList.add(\"disabled\");\n\n      fetch(`/Omnibees/GetHotelRatePlans?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=${resort}`)\n        .then(response => response.json())\n        .then(data => {\n          if(typeof action === 'function') {\n            action(data);\n          } else {\n            jsonViewer.data = data;\n          }\n        })\n        .catch(error => console.error('Error:', error))\n        .finally(() => {\n          if(typeof action !== 'function') {\n            jsonViewerContainer.classList.remove(\"loading\");\n            jsonViewerContainer.classList.remove(\"disabled\");\n            event.target.classList.add(\"active\");\n            setActiveMenuItem();\n          }\n        });\n    }\n\n    function GetHotelAvail(event) {\n      const jsonViewerContainer = document.getElementById(\"jsonViewerContainer\");\n      jsonViewerContainer.classList.add(\"loading\");\n      jsonViewerContainer.classList.add(\"disabled\");\n      var warnings_area = document.getElementById(\"warnings_area\");\n      warnings_area.innerHTML = \"\"; // Clear previous warnings\n\n      let checkIn = document.getElementById(\"checkIn_field\").value;\n      let checkOut = document.getElementById(\"checkOut_field\").value;\n      let hotelCode = document.getElementById(\"hotel_selector\").value;\n      let ratesPlan = document.getElementById(\"rates_selector\").value;\n      let adults = document.getElementById(\"adults\").value;\n      let children = document.getElementById(\"childs\").value;\n      let children_ages = document.getElementById(\"childs_ages\").value;\n\n      fetch(`/Omnibees/GetHotelAvail`, {\n        method: 'POST',\n        headers: {\n          'Content-Type': 'application/json'\n        },\n        body: JSON.stringify({\n          api_key: 'yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du',\n          checkIn: checkIn,\n          checkOut: checkOut,\n          hotelCode: hotelCode,\n          ratesPlan: ratesPlan,\n          adults: adults,\n          children: children,\n          children_ages: children_ages\n        })\n      })\n        .then(response => response.json())\n        .then(data => {\n          jsonViewer.data = data;\n          return data;\n        })\n        .then(data => {\n          if(data.WarningsType !== null){\n            data.WarningsType.forEach(warning => {\n              console.warn('Warning:', warning);\n              let warning_item = document.createElement(\"div\");\n              warning_item.className = \"item\";\n              warning_item.textContent = warning;\n              warnings_area.appendChild(warning_item);\n            });\n          }else{\n\n            let reservation_details = {\n              checkIn: checkIn,\n              checkOut: checkOut,\n              hotelCode: hotelCode,\n              ratesPlan: ratesPlan,\n              adults: adults,\n              children: children,\n              children_ages: children_ages\n            };\n\n            showRooms(data.RoomStaysType.RoomStays[0].RoomTypes,data.RoomStaysType.RoomStays[0].RoomRates,reservation_details);\n\n            data.RoomStaysType.RoomStays[0].RoomRates\t.forEach(roomRate => {\n\n              let tot = roomRate.Total.AmountAfterTax;\n              $(`[data-idroom=${roomRate.RoomID}]`).text(`$: ${tot} USD`);\n            });\n          }\n          \n        })\n        .catch(error => console.error('Error:', error))\n        .finally(() => {\n          jsonViewerContainer.classList.remove(\"loading\");\n          jsonViewerContainer.classList.remove(\"disabled\");\n          event.target.classList.add(\"active\");\n          setActiveMenuItem();\n        });\n    }\n\n    function createDateField(name,id, value) {\n      let dateField = document.createElement(\"input\");\n      dateField.type = \"text\";\n      dateField.name = name;\n      dateField.id = id + \"_field\";\n      dateField.value = value;\n\n      let div = document.createElement(\"div\");\n      div.className = \"ui input left icon\";\n      div.appendChild(dateField);\n\n      let icon = document.createElement(\"i\");\n      icon.className = \"calendar icon\";\n      div.appendChild(icon);\n\n      let Container = document.createElement(\"div\");\n      Container.className = \"ui calendar\";\n      Container.id = id;\n\n      Container.appendChild(div);\n\n      return Container;\n    }\n\n    function createDropdown(name, id, options) {\n      let select = document.createElement(\"select\");\n      select.name = name;\n      select.id = id;\n      select.className = \"ui dropdown\";\n\n      options.forEach(option => {\n        let opt = document.createElement(\"option\");\n        opt.value = option.value;\n        opt.textContent = option.text;\n        select.appendChild(opt);\n      });\n\n      return select;\n    }\n\n    function localStart() {\n      $(\".generalRequest\").click(function(event) {\n        event.preventDefault();\n        const rute = $(this).data(\"rute\");\n        const jsonViewerContainer = document.getElementById(\"jsonViewerContainer\");\n        jsonViewerContainer.classList.add(\"loading\");\n        jsonViewerContainer.classList.add(\"disabled\");\n\n        let postData = {};\n\n        if ($(this).data(\"form\")) {\n          const form = document.getElementById($(this).data(\"form\"));\n          const formData = new FormData(form);\n          formData.forEach((value, key) => {\n            postData[key] = value;\n          });\n        }\n\n        fetch(`/Omnibees/${rute}?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du`,{\n          method: 'POST',\n          headers: {\n            'Content-Type': 'application/json',\n            // You can also use 'application/x-www-form-urlencoded' if needed\n          },\n          body: JSON.stringify(postData)\n        })\n          .then(response => response.json())\n          .then(data => {\n            jsonViewer.data = data;\n          })\n          .catch(error => console.error('Error:', error))\n          .finally(() => {\n            jsonViewerContainer.classList.remove(\"loading\");\n            jsonViewerContainer.classList.remove(\"disabled\");\n            event.target.classList.add(\"active\");\n            setActiveMenuItem();\n          });\n      });\n    }\n\n    function startCheckout(reservation_details){\n      let container = document.createElement(\"div\");\n      container.className = \"ui segment\";\n\n      let title = document.createElement(\"h3\");\n      title.textContent = \"Checkout\";\n      container.appendChild(title);\n\n      var form = document.createElement(\"form\");\n      form.className = \"ui form\";\n\n      form.appendChild(createFormField(\"resortCode\", \"resortCode\", \"resortCode\", \"text\", reservation_details.hotelCode));\n      form.appendChild(createFormField(\"roomCode\", \"roomCode\", \"roomCode\", \"text\", reservation_details.roomCode));\n      form.appendChild(createFormField(\"RatePlanID\", \"RatePlanID\", \"RatePlanID\", \"text\", reservation_details.ratesPlan));\n      form.appendChild(createFormField(\"checkIn\", \"checkIn\", \"checkIn\", \"text\", reservation_details.checkIn));\n      form.appendChild(createFormField(\"checkOut\", \"checkOut\", \"checkOut\", \"text\", reservation_details.checkOut));\n      form.appendChild(createFormField(\"adults\", \"adults\", \"adults\", \"text\", reservation_details.adults));\n      form.appendChild(createFormField(\"children\", \"children\", \"children\", \"text\", reservation_details.children));\n      form.appendChild(createFormField(\"children_ages\", \"children_ages\", \"children_ages\", \"text\", reservation_details.children_ages));\n\n      let title_pax = document.createElement(\"h3\");\n      title_pax.textContent = \"Pax contact details\";\n      form.appendChild(title_pax);\n\n      let contactArea = document.createElement(\"div\");\n\n      for(let i=0; i < parseInt(reservation_details.adults); i++){\n        let paxForm = contactForPax(i+1);\n        contactArea.appendChild(paxForm);\n      }\n      form.appendChild(contactArea);\n\n      container.appendChild(form);\n      document.getElementById(\"viewArea\").appendChild(container);\n      document.getElementById(\"rooms_list\").classList.add(\"disabled\");\n\n      let SendHotelReservation = document.createElement(\"div\");\n      SendHotelReservation.className = \"ui teal button\";\n      SendHotelReservation.textContent = \"Send Hotel Reservation\";\n      SendHotelReservation.onclick = function() {\n        // Implement booking functionality here\n        //alert(`Sending reservation`);\n        SendHotelReservationFunction(form);\n      };\n      form.appendChild(SendHotelReservation);\n    }\n\n    function contactForPax(index){\n      let container = document.createElement(\"div\");\n      container.className = \"ui segment\";\n\n      let title = document.createElement(\"h3\");\n      title.textContent = \"Contact for Pax #\" + index;\n      container.appendChild(title);\n\n      let form = document.createElement(\"div\");\n      form.className = \"ui form\";\n\n      let first_name = document.createElement(\"input\");\n      first_name.type = \"text\";\n      first_name.name = \"first_name_\" + index;\n      first_name.placeholder = \"First Name\";\n      form.appendChild(first_name);\n\n      let last_name = document.createElement(\"input\");\n      last_name.type = \"text\";\n      last_name.name = \"last_name_\" + index;\n      last_name.placeholder = \"Last Name\";\n      form.appendChild(last_name);\n\n      let email = document.createElement(\"input\");\n      email.type = \"email\";\n      email.name = \"email_\" + index;\n      email.placeholder = \"Email\";\n      form.appendChild(email);\n\n      let phone = document.createElement(\"input\");\n      phone.type = \"tel\";\n      phone.name = \"phone_\" + index;\n      phone.placeholder = \"Phone\";\n      form.appendChild(phone);\n      container.appendChild(form);\n      return container\n    }\n\n\n    function SendHotelReservationFunction(form) {\n      var warnings_area = document.getElementById(\"warnings_area\");\n      warnings_area.innerHTML = \"\";\n      let formData = new FormData(form);\n      let jsonData = {};\n\n      formData.forEach( (value, key) => {\n        jsonData[key] = value;\n      });\n\n      jsonData.api_key = 'yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du';\n\n      fetch(`/Omnibees/SendHotelResInitiate`, {\n        method: 'POST',\n        headers: {\n          'Content-Type': 'application/json'\n        },\n        body: JSON.stringify(jsonData)\n      })\n        .then(response => response.json())\n        .then(data => {\n          jsonViewer.data = data;\n          return data;\n        })\n        .then(data => {\n          if(data.WarningsType !== null){\n            data.WarningsType.forEach(warning => {\n              console.warn('Warning:', warning);\n              let warning_item = document.createElement(\"div\");\n              warning_item.className = \"item\";\n              warning_item.textContent = warning;\n              warnings_area.appendChild(warning_item);\n            });\n          }else{\n            if(data.HotelReservationsType !== null){\n              if(data.HotelReservationsType.HotelReservations.length >0){\n                var reservation_code = data.HotelReservationsType.HotelReservations[0].UniqueID.ID;\n                var transaction_id = data.TransactionIdentifier;\n                console.log('Reservation Code:', reservation_code);\n                console.log('Transaction ID:', transaction_id);\n                alert(`Reservation successful! Your reservation code is: ${reservation_code}`);\n                ShowCommitArea(reservation_code, transaction_id);\n              }\n            }\n          }\n          \n        })\n        .catch(error => console.error('Error:', error))\n        .finally(() => {\n          jsonViewerContainer.classList.remove(\"loading\");\n          jsonViewerContainer.classList.remove(\"disabled\");\n          //event.target.classList.add(\"active\");\n          setActiveMenuItem();\n        });\n    }\n\n    function ShowCommitArea(reservation_code, transaction_id) {\n      var commit_area = document.createElement(\"div\");\n      commit_area.className = \"ui segment\";\n\n      let title = document.createElement(\"h3\");\n      title.textContent = \"Commit Reservation\";\n      commit_area.appendChild(title);\n\n      let form = document.createElement(\"form\");\n      form.className = \"ui form\";\n\n      form.appendChild(createFormField(\"reservationId\", \"reservationId\", \"Reservation ID\", \"text\", reservation_code));\n\n      form.appendChild(createFormField(\"transactionId\", \"transactionId\", \"Transaction ID\", \"text\", transaction_id));\n\n      var button = document.createElement(\"div\");\n      button.className = \"ui teal button\";\n      button.textContent = \"Commit Reservation\";\n      button.onclick = function() {\n        sendCommit(reservation_code, transaction_id);\n      };\n      form.appendChild(button);\n\n      commit_area.appendChild(form);\n      document.getElementById(\"viewArea\").appendChild(commit_area);\n    }\n\n    function sendCommit(reservationId, transactionId) {\n      var commitData = {\n        reservationId: reservationId,\n        transactionId: transactionId,\n        api_key: 'yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du'\n      };\n\n      fetch(`/Omnibees/SendHotelResCommit`, {\n        method: 'POST',\n        headers: {\n          'Content-Type': 'application/json'\n        },\n        body: JSON.stringify(commitData)\n      })\n        .then(response => response.json())\n        .then(data => {\n          if(data.WarningsType !== null){\n            data.WarningsType.forEach(warning => {\n              console.warn('Warning:', warning);\n              let warning_item = document.createElement(\"div\");\n              warning_item.className = \"item\";\n              warning_item.textContent = warning;\n              warnings_area.appendChild(warning_item);\n            });\n          }else{\n            if(data.ResResponseType == \"Commited\"){\n              alert(`Reservation committed successfully!`);\n            }else{\n              alert(`Reservation commit failed: ${data.ResResponseType}`);\n            }\n          }\n          \n        })\n        .catch(error => console.error('Error:', error));\n    }\n\n  </script>\n</head>\n<body onload=\"localStart()\">\n  <br>\n  <div class=\"ui container\">\n    <div class=\"ui grid\">\n      <div class=\"sixteen wide column\">\n        <div class=\"ui header\">\n          Omnibees API Test\n        </div>\n      </div>\n      <div class=\" row\">\n        <div class=\"six wide column\">\n          <div class=\"ui vertical fluid  menu\">\n            <a class=\"item\" href=\"#Omnibees/ping\" onClick=\"pings(event);\">Ping</a>\n\n            <a class=\"item generalRequest\" href=\"#Omnibees/GetCountry\" data-rute=\"GetCountry\">GetCountry</a>\n            <a class=\"item generalRequest\" href=\"#Omnibees/GetState\" data-rute=\"GetState\" data-form=\"getStateForm\">GetState</a>\n            <div class=\"item\">\n              <form action=\"\" id=\"getStateForm\">\n                <div class=\"ui form\">\n                  <div class=\"field\">\n                    <label for=\"country_uid\">Country Code</label>\n                    <input type=\"text\" id=\"country_uid\" name=\"country_uid\" value=\"\" placeholder=\"\">\n                  </div>\n                  <div class=\"field\">\n                    <label for=\"state_search_code\">state search code</label>\n                    <input type=\"text\" id=\"state_search_code\" name=\"state_search_code\" value=\"\" placeholder=\"\">\n                  </div>\n                  <div class=\"field\">\n                    <label for=\"zone_search_code\">zone search code</label>\n                    <input type=\"text\" id=\"zone_search_code\" name=\"zone_search_code\" value=\"\" placeholder=\"\">\n                  </div>\n                  \n                </div>\n              </form>\n\n            </div>\n            <a class=\"item generalRequest\" href=\"#Omnibees/GetCity\" data-rute=\"GetCity\" data-form=\"getCityForm\">GetCity</a>\n            <div class=\"item\">\n              <form action=\"\" id=\"getCityForm\">\n                <div class=\"ui form\">\n                  <div class=\"field\">\n                    <label for=\"country_uid_city\">Country Code</label>\n                    <input type=\"text\" id=\"country_uid_city\" name=\"country_uid\" value=\"\" placeholder=\"\">\n                  </div>\n                  <div class=\"field\">\n                    <label for=\"state_search_code_city\">state search code</label>\n                    <input type=\"text\" id=\"state_search_code_city\" name=\"state_search_code\" value=\"\" placeholder=\"\">\n                  </div>\n                  \n                </div>\n              </form>\n\n            </div>\n            <a class=\"item generalRequest\" href=\"#Omnibees/GetZones\" data-rute=\"GetZones\" data-form=\"getZonesForm\">GetZones</a>\n            <div class=\"item\">\n              <form action=\"\" id=\"getZonesForm\">\n                <div class=\"ui form\">\n                  <div class=\"field\">\n                    <label for=\"country_uid_zone\">Country Code</label>\n                    <input type=\"text\" id=\"country_uid_zone\" name=\"country_uid\" value=\"\" placeholder=\"\">\n                  </div>\n                  <div class=\"field\">\n                    <label for=\"state_search_code_zone\">state search code</label>\n                    <input type=\"text\" id=\"state_search_code_zone\" name=\"state_search_code\" value=\"\" placeholder=\"\">\n                  </div>\n                  <div class=\"field\">\n                    <label for=\"zone_search_code_zone\">zone search code</label>\n                    <input type=\"text\" id=\"zone_search_code_zone\" name=\"zone_search_code\" value=\"\" placeholder=\"\">\n                  </div>\n                  <div class=\"field\">\n                    <label for=\"cities_data_uid_zone\">cities data uid</label>\n                    <input type=\"text\" id=\"cities_data_uid_zone\" name=\"cities_data_uid\" value=\"\" placeholder=\"\">\n                  </div>\n                  \n                </div>\n              </form>\n\n            </div>\n            <div class=\"ui divider\"></div>\n            <a class=\"item\" href=\"#Omnibees/HotelSearch\" onClick=\"hotelSearch(event)\">HotelSearch</a>\n            <div class=\"item\">\n              <div class=\"header\">GetHotelDescriptiveInfo</div>\n              <div class=\"menu\">\n              \n                  <a href=\"#viewHotel_198335\" class=\"item\" onClick=\"GetHotelDescriptiveInfo(event,198335)\"> Hotel 198335 - Turim Presidente Hotel DEMO </a>\n                  <a href=\"#viewHotel_198336\" class=\"item\" onClick=\"GetHotelDescriptiveInfo(event,198336)\"> Hotel 198336 - Nacional Inn </a>\n                  <a href=\"#viewHotel_198337\" class=\"item\" onClick=\"GetHotelDescriptiveInfo(event,198337)\"> Hotel 198337 - Selina Geres DEMO </a>\n                  <a href=\"#viewHotel_198340\" class=\"item\" onClick=\"GetHotelDescriptiveInfo(event,198340)\"> Hotel 198340 - City Garden Hotels </a>\n                  <a href=\"#viewHotel_198341\" class=\"item\" onClick=\"GetHotelDescriptiveInfo(event,198341)\"> Hotel 198341 - Hotel Urban Center Bogota DEMO </a>\n              </div>\n            </div>\n            \n            <a class=\"item\" href=\"#Omnibees/HotelAvailCalendar\" onClick=\"ShowReservationStartForm(event)\">Reservation Start</a>\n            <div class=\"item\">\n              <form action=\"\" id=\">HotelAvailCalendarForm\">\n                <div class=\"ui form\">\n                  <div class=\"field\">\n                    <label for=\"resort_uuid_bookings\">Resort UUID</label>\n                    <input type=\"text\" id=\"resort_uuid_bookings\" name=\"resort_uuid\" value=\"\" placeholder=\"\">\n                  </div>\n                  <div class=\"field\">\n                    <label for=\"from_bookings\">Start date</label>\n                    <input type=\"date\" id=\"from_bookings\" name=\"start_date\" value=\"\" placeholder=\"\">\n                  </div>\n\n                  <div class=\"field\">\n                    <label for=\"to_bookings\">End date</label>\n                    <input type=\"date\" id=\"to_bookings\" name=\"end_date\" value=\"\" placeholder=\"\">\n                  </div>\n\n                </div>\n              </form>\n            </div>\n            <div class=\"item\">\n              <div class=\"header\">GetHotelRatePlans</div>\n              <div class=\"menu\">\n              \n                  <a href=\"#viewHotel_198335\" class=\"item\" onClick=\"GetHotelRatePlans(event,198335,'')\"> Hotel 198335 - Turim Presidente Hotel DEMO </a>\n                  <a href=\"#viewHotel_198336\" class=\"item\" onClick=\"GetHotelRatePlans(event,198336,'')\"> Hotel 198336 - Nacional Inn </a>\n                  <a href=\"#viewHotel_198337\" class=\"item\" onClick=\"GetHotelRatePlans(event,198337,'')\"> Hotel 198337 - Selina Geres DEMO </a>\n                  <a href=\"#viewHotel_198340\" class=\"item\" onClick=\"GetHotelRatePlans(event,198340,'')\"> Hotel 198340 - City Garden Hotels </a>\n                  <a href=\"#viewHotel_198341\" class=\"item\" onClick=\"GetHotelRatePlans(event,198341,'')\"> Hotel 198341 - Hotel Urban Center Bogota DEMO </a>\n              </div>\n            </div>\n            <a class=\"item\" href=\"#Omnibees/SendHotelRes\">SendHotelRes</a>\n            <a class=\"item\" href=\"#Omnibees/SendHotelResCommit\">SendHotelResCommit</a>\n            <a class=\"item\" href=\"#Omnibees/SendHotelResModify\">SendHotelResModify</a>\n            <a class=\"item\" href=\"#Omnibees/SendHotelResModifyCommit\">SendHotelResModifyCommit</a>\n            <a class=\"item\" href=\"#Omnibees/SendHotelResCancel\">SendHotelResCancel</a>\n\n            <a class=\"item generalRequest\" href=\"#Omnibees/GetBookings\" data-rute=\"GetBookings\" data-form=\"getBookingsForm\">GetBookings</a>\n            <div class=\"item\">\n              <form action=\"\" id=\"getBookingsForm\">\n                <div class=\"ui form\">\n                  <div class=\"field\">\n                    <label for=\"resort_uuid_bookings\">Resort UUID</label>\n                    <input type=\"text\" id=\"resort_uuid_bookings\" name=\"resort_uuid\" value=\"\" placeholder=\"\">\n                  </div>\n                  <div class=\"field\">\n                    <label for=\"from_bookings\">Start date</label>\n                    <input type=\"date\" id=\"from_bookings\" name=\"start_date\" value=\"\" placeholder=\"\">\n                  </div>\n\n                  <div class=\"field\">\n                    <label for=\"to_bookings\">End date</label>\n                    <input type=\"date\" id=\"to_bookings\" name=\"end_date\" value=\"\" placeholder=\"\">\n                  </div>\n\n                </div>\n              </form>\n            </div>\n            \n          </div>\n        </div>\n        <div class=\"ten wide column\" id=\"viewArea\">\n          \n        </div>\n      </div>\n      <div class=\"sixteen wide column\">\n        <div class=\"ui divider\"></div>\n        <div class=\"ui header\">\n           Logs\n        </div>\n      </div>\n      <div class=\" row\">\n        <div class=\"sixteen wide column\">\n          <div class=\"ui basic segment\" id=\"jsonViewerContainer\" style=\"padding:0;\">\n            <andypf-json-viewer id=\"jsonViewer\"></andypf-json-viewer>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <script>\n    const jsonViewer = document.getElementById(\"jsonViewer\");\n    jsonViewer.id = \"json\"\n    jsonViewer.expanded = 2\n    jsonViewer.indent = 2\n    jsonViewer.showDataTypes = true\n    jsonViewer.theme = \"monokai\"\n    jsonViewer.showToolbar = true\n    jsonViewer.showSize = true\n    jsonViewer.showCopy = true\n    jsonViewer.expandIconType = \"square\"\n    jsonViewer.data = { example: \"data\" }\n\n\n    \n  </script>\n</body>\n</html>"}} {"uid":"9655601"}
[2025-09-10 08:16:58] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/ping?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_f0880182-f308-46e4-9282-d9369b7dcebd","TimeStamp":"2025-09-10T15:16:58.1015511Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"EchoData":"string","Success":[],"WarningsType":null,"ErrorsType":null}}} {"uid":"66684a7"}
[2025-09-10 08:17:11] slim-app.INFO: Petition {"incoming":{"Method":"POST","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/GetCountry?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_1e8b873f-c795-4680-a2f8-ff7c6a45fbef","TimeStamp":"2025-09-10T15:17:11.1053227Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"CountriesType":{"Countries":[{"Code":161,"Name":"Rwanda"},{"Code":177,"Name":"Somalia"},{"Code":209,"Name":"Yemen"},{"Code":95,"Name":"Iraq"},{"Code":168,"Name":"Saudi Arabia"},{"Code":94,"Name":"Iran"},{"Code":60,"Name":"Cyprus"},{"Code":189,"Name":"Tanzania"},{"Code":186,"Name":"Syria"},{"Code":24,"Name":"Armenia"},{"Code":104,"Name":"Kenya"},{"Code":56,"Name":"Democratic Republic of the Congo"},{"Code":63,"Name":"Djibouti"},{"Code":198,"Name":"Uganda"},{"Code":49,"Name":"Central African Republic"},{"Code":171,"Name":"Seychelles"},{"Code":102,"Name":"Hashemite Kingdom of Jordan"},{"Code":113,"Name":"Lebanon"},{"Code":109,"Name":"Kuwait"},{"Code":148,"Name":"Oman"},{"Code":158,"Name":"Qatar"},{"Code":29,"Name":"Bahrain"},{"Code":200,"Name":"United Arab Emirates"},{"Code":97,"Name":"Israel"},{"Code":195,"Name":"Turkey"},{"Code":73,"Name":"Ethiopia"},{"Code":71,"Name":"Eritrea"},{"Code":68,"Name":"Egypt"},{"Code":181,"Name":"Sudan"},{"Code":82,"Name":"Greece"},{"Code":44,"Name":"Burundi"},{"Code":72,"Name":"Estonia"},{"Code":112,"Name":"Latvia"},{"Code":27,"Name":"Azerbaijan"},{"Code":118,"Name":"Lithuania"},{"Code":79,"Name":"Georgian Soviet Socialist Republic"},{"Code":132,"Name":"Moldova"},{"Code":32,"Name":"Belarus"},{"Code":75,"Name":"Finland"},{"Code":199,"Name":"Ukraine"},{"Code":120,"Name":"Macedonia"},{"Code":90,"Name":"Hungary"},{"Code":42,"Name":"Bulgaria"},{"Code":18,"Name":"Albania"},{"Code":156,"Name":"Poland"},{"Code":159,"Name":"Romania"},{"Code":108,"Name":"Republic of Kosovo"},{"Code":211,"Name":"Zimbabwe"},{"Code":210,"Name":"Zambia"},{"Code":54,"Name":"Comoros"},{"Code":122,"Name":"Malawi"},{"Code":114,"Name":"Lesotho"},{"Code":39,"Name":"Botswana"},{"Code":129,"Name":"Mauritius"},{"Code":183,"Name":"Swaziland"},{"Code":178,"Name":"Republic of South Africa"},{"Code":137,"Name":"Mozambique"},{"Code":121,"Name":"Madagascar"},{"Code":17,"Name":"Afghanistan"},{"Code":149,"Name":"Pakistan"},{"Code":30,"Name":"Bangladesh"},{"Code":196,"Name":"Turkmenistan"},{"Code":188,"Name":"Tajikistan"},{"Code":180,"Name":"Sri Lanka"},{"Code":36,"Name":"Bhutan"},{"Code":92,"Name":"India"},{"Code":124,"Name":"Maldives"},{"Code":141,"Name":"Nepal"},{"Code":138,"Name":"Myanmar [Burma]"},{"Code":204,"Name":"Uzbekistan"},{"Code":103,"Name":"Kazakhstan"},{"Code":110,"Name":"Kyrgyzstan"},{"Code":150,"Name":"Palau"},{"Code":208,"Name":"Vietnam"},{"Code":190,"Name":"Thailand"},{"Code":93,"Name":"Indonesia"},{"Code":111,"Name":"Laos"},{"Code":187,"Name":"Taiwan"},{"Code":155,"Name":"Philippines"},{"Code":123,"Name":"Malaysia"},{"Code":52,"Name":"People's Republic of China"},{"Code":41,"Name":"Brunei"},{"Code":45,"Name":"Cambodia"},{"Code":106,"Name":"South Korea"},{"Code":101,"Name":"Japan"},{"Code":107,"Name":"Democratic People’s Republic of Korea"},{"Code":173,"Name":"Singapore"},{"Code":66,"Name":"East Timor"},{"Code":160,"Name":"Russia"},{"Code":134,"Name":"Mongolian People’s Republic"},{"Code":25,"Name":"Australia"},{"Code":127,"Name":"Marshall Islands"},{"Code":131,"Name":"Micronesia"},{"Code":152,"Name":"Papua New Guinea"},{"Code":176,"Name":"Solomon Islands"},{"Code":197,"Name":"Tuvalu"},{"Code":140,"Name":"Republic of Nauru"},{"Code":205,"Name":"Vanuatu"},{"Code":143,"Name":"New Zealand"},{"Code":74,"Name":"Fiji"},{"Code":116,"Name":"Libya"},{"Code":46,"Name":"Cameroon"},{"Code":169,"Name":"Senegal"},{"Code":55,"Name":"Republic of the Congo"},{"Code":157,"Name":"Portugal"},{"Code":115,"Name":"Liberia"},{"Code":99,"Name":"Ivory Coast"},{"Code":81,"Name":"Ghana"},{"Code":70,"Name":"Equatorial Guinea"},{"Code":146,"Name":"Nigeria"},{"Code":43,"Name":"Burkina Faso"},{"Code":191,"Name":"Togo"},{"Code":86,"Name":"Guinea-Bissau"},{"Code":128,"Name":"Mauritania"},{"Code":35,"Name":"Benin"},{"Code":77,"Name":"Gabon"},{"Code":172,"Name":"Sierra Leone"},{"Code":167,"Name":"São Tomé and Príncipe"},{"Code":78,"Name":"Gambia"},{"Code":85,"Name":"Guinea"},{"Code":50,"Name":"Chad"},{"Code":145,"Name":"Niger"},{"Code":125,"Name":"Mali"},{"Code":194,"Name":"Tunisia"},{"Code":179,"Name":"Spain"},{"Code":136,"Name":"Morocco"},{"Code":126,"Name":"Malta"},{"Code":19,"Name":"Algeria"},{"Code":62,"Name":"Denmark"},{"Code":91,"Name":"Iceland"},{"Code":201,"Name":"United Kingdom"},{"Code":185,"Name":"Switzerland"},{"Code":184,"Name":"Sweden"},{"Code":142,"Name":"Netherlands"},{"Code":26,"Name":"Austria"},{"Code":33,"Name":"Belgium"},{"Code":80,"Name":"Germany"},{"Code":119,"Name":"Luxembourg"},{"Code":96,"Name":"Ireland"},{"Code":133,"Name":"Monaco"},{"Code":76,"Name":"France"},{"Code":20,"Name":"Andorra"},{"Code":117,"Name":"Liechtenstein"},{"Code":174,"Name":"Slovakia"},{"Code":61,"Name":"Czech Republic"},{"Code":147,"Name":"Norway"},{"Code":206,"Name":"Vatican City"},{"Code":166,"Name":"San Marino"},{"Code":98,"Name":"Italy"},{"Code":175,"Name":"Slovenia"},{"Code":135,"Name":"Montenegro"},{"Code":58,"Name":"Croatia"},{"Code":38,"Name":"Bosnia and Herzegovina"},{"Code":21,"Name":"Angola"},{"Code":139,"Name":"Namibia"},{"Code":31,"Name":"Barbados"},{"Code":48,"Name":"Cape Verde"},{"Code":87,"Name":"Guyana"},{"Code":219,"Name":"French Guiana"},{"Code":182,"Name":"Suriname"},{"Code":153,"Name":"Paraguay"},{"Code":203,"Name":"Uruguay"},{"Code":40,"Name":"Brazil"},{"Code":100,"Name":"Jamaica"},{"Code":65,"Name":"Dominican Republic"},{"Code":59,"Name":"Cuba"},{"Code":28,"Name":"Bahamas"},{"Code":193,"Name":"Trinidad and Tobago"},{"Code":162,"Name":"Saint Kitts and Nevis"},{"Code":64,"Name":"Dominica"},{"Code":22,"Name":"Antigua and Barbuda"},{"Code":163,"Name":"Saint Lucia"},{"Code":214,"Name":"Aruba"},{"Code":218,"Name":"British Virgin Islands"},{"Code":164,"Name":"Saint Vincent and the Grenadines"},{"Code":216,"Name":"Saint Martin"},{"Code":83,"Name":"Grenada"},{"Code":34,"Name":"Belize"},{"Code":69,"Name":"El Salvador"},{"Code":84,"Name":"Guatemala"},{"Code":89,"Name":"Honduras"},{"Code":144,"Name":"Nicaragua"},{"Code":57,"Name":"Costa Rica"},{"Code":207,"Name":"Venezuela"},{"Code":67,"Name":"Ecuador"},{"Code":53,"Name":"Colombia"},{"Code":151,"Name":"Panama"},{"Code":88,"Name":"Haiti"},{"Code":23,"Name":"Argentina"},{"Code":51,"Name":"Chile"},{"Code":37,"Name":"Bolivia"},{"Code":154,"Name":"Peru"},{"Code":130,"Name":"Mexico"},{"Code":105,"Name":"Kiribati"},{"Code":192,"Name":"Tonga"},{"Code":165,"Name":"Samoa"},{"Code":217,"Name":"Puerto Rico"},{"Code":47,"Name":"Canada"},{"Code":202,"Name":"United States"},{"Code":170,"Name":"Serbia"},{"Code":213,"Name":"Curacao"},{"Code":215,"Name":"Bonaire, Saint Eustatius and Saba"},{"Code":212,"Name":"Hong Kong"}]},"Success":[],"WarningsType":null,"ErrorsType":null}}} {"uid":"cd15e80"}
[2025-09-10 08:17:22] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/GetHotelDescriptiveInfo?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=198335","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","hotelCode":"198335"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_33146e8a-400c-8b04-3242-462b50347eed","TimeStamp":"2025-09-10T15:17:22.8252063Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"POS":null,"WarningsType":{"Warnings":[{"Language":1,"ShortText":"Invalid hotel code: Hotel with code 198335 returned no data. The reason can be invalid hotel id or no authorization to get data for this hotel","Code":392,"RPH":null,"Type":null}]},"Success":[],"ErrorsType":null,"HotelDescriptiveContentsType":null}}} {"uid":"844138f"}
[2025-09-10 08:17:28] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/GetHotelRatePlans?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=198336","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","hotelCode":"198336"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_a2892ec5-cfcc-6b3e-3284-e15abd4227d8","TimeStamp":"2025-09-10T15:17:28.1726526Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"Success":[],"WarningsType":{"Warnings":[{"Language":null,"ShortText":"Invalid hotel code: Hotel with code 198336 returned no data. The reason can be invalid hotel id or no authorization to get data for this hotel","Code":392,"RPH":null,"Type":null}]},"ErrorsType":null,"RatePlans":null,"TPA_Extensions":null}}} {"uid":"10b21d0"}
[2025-09-10 08:17:44] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/GetHotelRatePlans?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=198337","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","hotelCode":"198337"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_487ca493-ff31-7423-053d-d64334def348","TimeStamp":"2025-09-10T15:17:43.9223889Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"Success":[],"WarningsType":{"Warnings":[{"Language":null,"ShortText":"Invalid hotel code: Hotel with code 198337 returned no data. The reason can be invalid hotel id or no authorization to get data for this hotel","Code":392,"RPH":null,"Type":null}]},"ErrorsType":null,"RatePlans":null,"TPA_Extensions":null}}} {"uid":"b7d8b95"}
[2025-09-10 08:17:48] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/GetHotelRatePlans?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=198340","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","hotelCode":"198340"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_1632c464-bbb9-9d68-8fed-3cc3295e220f","TimeStamp":"2025-09-10T15:17:48.077123Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"Success":[],"WarningsType":{"Warnings":[{"Language":null,"ShortText":"Invalid hotel code: Hotel with code 198340 returned no data. The reason can be invalid hotel id or no authorization to get data for this hotel","Code":392,"RPH":null,"Type":null}]},"ErrorsType":null,"RatePlans":null,"TPA_Extensions":null}}} {"uid":"b34bf72"}
[2025-09-10 08:17:51] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/GetHotelRatePlans?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=198341","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","hotelCode":"198341"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_8d0e267a-5d7a-6b20-a954-5706fc376526","TimeStamp":"2025-09-10T15:17:51.8435665Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"Success":[],"WarningsType":{"Warnings":[{"Language":null,"ShortText":"Invalid hotel code: Hotel with code 198341 returned no data. The reason can be invalid hotel id or no authorization to get data for this hotel","Code":392,"RPH":null,"Type":null}]},"ErrorsType":null,"RatePlans":null,"TPA_Extensions":null}}} {"uid":"51950bf"}
[2025-09-10 08:18:08] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/GetHotelRatePlans?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=198336","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","hotelCode":"198336"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_835f101b-3037-5a59-0ddb-56bba42a8a0f","TimeStamp":"2025-09-10T15:18:08.0779788Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"Success":[],"WarningsType":{"Warnings":[{"Language":null,"ShortText":"Invalid hotel code: Hotel with code 198336 returned no data. The reason can be invalid hotel id or no authorization to get data for this hotel","Code":392,"RPH":null,"Type":null}]},"ErrorsType":null,"RatePlans":null,"TPA_Extensions":null}}} {"uid":"de1957b"}
[2025-09-10 08:18:11] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/GetHotelRatePlans?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=198335","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","hotelCode":"198335"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_8d226b38-8676-c27d-6102-28e9475877f6","TimeStamp":"2025-09-10T15:18:11.6442499Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"Success":[],"WarningsType":{"Warnings":[{"Language":null,"ShortText":"Invalid hotel code: Hotel with code 198335 returned no data. The reason can be invalid hotel id or no authorization to get data for this hotel","Code":392,"RPH":null,"Type":null}]},"ErrorsType":null,"RatePlans":null,"TPA_Extensions":null}}} {"uid":"30bf6a5"}
[2025-09-10 08:18:15] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/GetHotelRatePlans?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=198340","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","hotelCode":"198340"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_9c5e2b7a-b0f3-f80f-1562-8bdbb623409b","TimeStamp":"2025-09-10T15:18:15.2936882Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"Success":[],"WarningsType":{"Warnings":[{"Language":null,"ShortText":"Invalid hotel code: Hotel with code 198340 returned no data. The reason can be invalid hotel id or no authorization to get data for this hotel","Code":392,"RPH":null,"Type":null}]},"ErrorsType":null,"RatePlans":null,"TPA_Extensions":null}}} {"uid":"b1d39c9"}
[2025-09-10 08:18:37] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/GetHotelDescriptiveInfo?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=198335","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","hotelCode":"198335"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_dcf83a11-1526-4937-1f5f-f2877f586df6","TimeStamp":"2025-09-10T15:18:37.503168Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"POS":null,"WarningsType":{"Warnings":[{"Language":1,"ShortText":"Invalid hotel code: Hotel with code 198335 returned no data. The reason can be invalid hotel id or no authorization to get data for this hotel","Code":392,"RPH":null,"Type":null}]},"Success":[],"ErrorsType":null,"HotelDescriptiveContentsType":null}}} {"uid":"c5a4710"}
[2025-09-10 08:18:41] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/GetHotelRatePlans?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=198336","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","hotelCode":"198336"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_3a5454e1-16d0-64c4-1163-1aba30bf8d07","TimeStamp":"2025-09-10T15:18:41.1172572Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"Success":[],"WarningsType":{"Warnings":[{"Language":null,"ShortText":"Invalid hotel code: Hotel with code 198336 returned no data. The reason can be invalid hotel id or no authorization to get data for this hotel","Code":392,"RPH":null,"Type":null}]},"ErrorsType":null,"RatePlans":null,"TPA_Extensions":null}}} {"uid":"7ca131d"}
[2025-09-10 08:18:44] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/GetHotelRatePlans?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=198337","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","hotelCode":"198337"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_60c3c8be-827c-1d01-253e-b753091e3613","TimeStamp":"2025-09-10T15:18:44.1250443Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"Success":[],"WarningsType":{"Warnings":[{"Language":null,"ShortText":"Invalid hotel code: Hotel with code 198337 returned no data. The reason can be invalid hotel id or no authorization to get data for this hotel","Code":392,"RPH":null,"Type":null}]},"ErrorsType":null,"RatePlans":null,"TPA_Extensions":null}}} {"uid":"7f62b8f"}
[2025-09-10 08:18:47] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/GetHotelRatePlans?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=198340","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","hotelCode":"198340"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_f0377a77-1173-a2fa-4c5a-c06dff2c21ae","TimeStamp":"2025-09-10T15:18:46.8585261Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"Success":[],"WarningsType":{"Warnings":[{"Language":null,"ShortText":"Invalid hotel code: Hotel with code 198340 returned no data. The reason can be invalid hotel id or no authorization to get data for this hotel","Code":392,"RPH":null,"Type":null}]},"ErrorsType":null,"RatePlans":null,"TPA_Extensions":null}}} {"uid":"a79f329"}
[2025-09-10 08:18:49] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","Route":"https://omnibees.clubsolaris.com/Omnibees/GetHotelRatePlans?api_key=yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du&hotelCode=198341","Data":{"api_key":"yOhwJPXl1kMW9Zs2Cv7tszKBD90iH9Du","hotelCode":"198341"}},"response":{"status":200,"type":"application/json","body":{"EchoToken":"system_1f517c4c-bb99-abf4-a3d2-7f6d59a95321","TimeStamp":"2025-09-10T15:18:49.6785682Z","Target":0,"Version":7.20000000000000017763568394002504646778106689453125,"PrimaryLangID":1,"Success":[],"WarningsType":{"Warnings":[{"Language":null,"ShortText":"Invalid hotel code: Hotel with code 198341 returned no data. The reason can be invalid hotel id or no authorization to get data for this hotel","Code":392,"RPH":null,"Type":null}]},"ErrorsType":null,"RatePlans":null,"TPA_Extensions":null}}} {"uid":"85c9d4b"}
[2025-09-10 11:33:09] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":null,"Route":"https://omnibees.clubsolaris.com/","Data":[]},"response":{"status":405,"type":"application/json","body":{"message":"Not allowed   "}}} {"uid":"82cf074"}
[2025-09-10 12:24:31] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":null,"Route":"https://omnibees.clubsolaris.com/","Data":[]},"response":{"status":405,"type":"application/json","body":{"message":"Not allowed   "}}} {"uid":"e646420"}
[2025-09-10 21:36:39] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":null,"Route":"http://omnibees.clubsolaris.com/","Data":[]},"response":{"status":405,"type":"application/json","body":{"message":"Not allowed   "}}} {"uid":"51ad2de"}
[2025-09-10 21:36:41] slim-app.INFO: Petition {"incoming":{"Method":"GET","api":null,"Route":"https://omnibees.clubsolaris.com/","Data":[]},"response":{"status":405,"type":"application/json","body":{"message":"Not allowed   "}}} {"uid":"222b111"}
