| @@ -70,5 +70,41 @@ | ||
| 70 | 70 | |
| 71 | 71 | // send result to output |
| 72 | 72 | VBOHttpDocument::getInstance()->json($result); |
| 73 | 73 | } |
| 74 | + | |
| 75 | + /** | |
| 76 | + * AJAX endpoint to get the eligible options/extras for a given room party. | |
| 77 | + * | |
| 78 | + * @return void | |
| 79 | + * | |
| 80 | + * @since 1.18.8 (J) - 1.8.8 (WP) | |
| 81 | + */ | |
| 82 | + public function get_eligible_options() | |
| 83 | + { | |
| 84 | + if (!JSession::checkToken()) { | |
| 85 | + VBOHttpDocument::getInstance()->close(403, JText::translate('JINVALID_TOKEN')); | |
| 86 | + } | |
| 87 | + | |
| 88 | + $app = JFactory::getApplication(); | |
| 89 | + | |
| 90 | + // gather request values | |
| 91 | + $listingId = $app->input->getUInt('listing_id', 0); | |
| 92 | + $adults = $app->input->getUInt('adults', 0); | |
| 93 | + $children = $app->input->getUInt('children', 0); | |
| 94 | + $rateId = $app->input->getUInt('rate_id', 0); | |
| 95 | + $checkin = $app->input->getString('checkin', ''); | |
| 96 | + $checkout = $app->input->getString('checkout', ''); | |
| 97 | + | |
| 98 | + // get the listing eligible options for the given room party | |
| 99 | + $eligibleOptions = VBORoomHelper::getInstance()->getEligibleOptions($listingId, [ | |
| 100 | + 'checkin' => $checkin, | |
| 101 | + 'checkout' => $checkout, | |
| 102 | + 'adults' => $adults, | |
| 103 | + 'children' => $children, | |
| 104 | + 'rate_id' => $rateId, | |
| 105 | + ]); | |
| 106 | + | |
| 107 | + // send list to output | |
| 108 | + VBOHttpDocument::getInstance($app)->json($eligibleOptions); | |
| 109 | + } | |
| 74 | 110 | } |