public function res_admin_list_bookings_by_resource_id_start_end_callback()
 {
     // Check if user is logged in or die
     Resource_Booking_Ajax_Common::check_if_user_logged_in_or_die();
     // Check if user is a labmanager or die
     Resource_Booking_Ajax_Common::check_if_labmanager_or_die();
     // If here, user is labmanager (hopefully)
     $resource_id = isset($_POST['resource_id']) ? intval($_POST['resource_id'], 10) : 0;
     $start = isset($_POST['start']) ? $_POST['start'] : null;
     $end = isset($_POST['end']) ? $_POST['end'] : null;
     //Check if resource exists
     Resource_Booking_Ajax_Common::check_resource_id_or_die($this->rb_db, $resource_id);
     // Check if valid dates && valid interval
     Resource_Booking_Ajax_Common::check_if_valid_start_end_date_calendar_or_die($start, $end);
     // Validation done - good to query data
     // Search for bookings
     $bookings = $this->rb_db->list_bookings_by_resource_id_start_end($resource_id, $start, $end);
     $response = new stdClass();
     $response->success = true;
     $response->events = array();
     foreach ($bookings as $booking) {
         $user_id = $booking->user_id;
         $personal = true;
         $response->events[] = array("id" => $booking->id, "resource_id" => $booking->resource_id, "user_id" => $user_id, "username" => esc_html($booking->username), "start" => $booking->start, "end" => $booking->end, "details" => esc_html($booking->details), "personal" => $personal, "closed" => $booking->closed);
     }
     echo json_encode($response);
     wp_die();
     // this is required to terminate immediately and return a proper response
 }
 public function res_list_bookings_by_resource_id_start_end_callback()
 {
     // Check if user is logged in or die
     Resource_Booking_Ajax_Common::check_if_user_logged_in_or_die();
     $resource_id = isset($_POST['resource_id']) ? intval($_POST['resource_id'], 10) : 0;
     $start = isset($_POST['start']) ? $_POST['start'] : null;
     $end = isset($_POST['end']) ? $_POST['end'] : null;
     // Check if client_id exists (as user) or die
     global $user_ID;
     get_currentuserinfo();
     Resource_Booking_Ajax_Common::get_username_or_die($user_ID);
     //Check if resource exists or die
     Resource_Booking_Ajax_Common::check_resource_id_or_die($this->rb_db, $resource_id);
     // Check if valid dates && valid interval
     Resource_Booking_Ajax_Common::check_if_valid_start_end_date_calendar_or_die($start, $end);
     // Validation done - good to query data
     // Search for bookings
     $bookings = $this->rb_db->list_bookings_by_resource_id_start_end($resource_id, $start, $end);
     $response = new stdClass();
     $response->success = true;
     $response->events = array();
     foreach ($bookings as $booking) {
         if ($booking->user_id == $user_ID) {
             $user_id = $booking->user_id;
             $username = esc_html($booking->username);
             $details = esc_html($booking->details);
             $personal = true;
         } else {
             $user_id = "";
             $username = "******";
             $details = "";
             $personal = false;
         }
         $response->events[] = array("id" => $booking->id, "resource_id" => $booking->resource_id, "user_id" => $user_id, "username" => $username, "start" => $booking->start, "end" => $booking->end, "details" => $details, "personal" => $personal);
     }
     echo json_encode($response);
     wp_die();
     // this is required to terminate immediately and return a proper response
 }