public function res_admin_insert_booking_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; $client_id = isset($_POST['client_id']) ? intval($_POST['client_id'], 10) : 0; $start = isset($_POST['start']) ? $_POST['start'] : null; $end = isset($_POST['end']) ? $_POST['end'] : null; $details = isset($_POST['details']) ? $_POST['details'] : ""; // Check if client_id exists (as user) or die $client_username = Resource_Booking_Ajax_Common::get_username_or_die($client_id); // Check if resource exists or die $resource_info = Resource_Booking_Ajax_Common::get_resource_info_or_die($this->rb_db, $resource_id, "array"); // Check if valid dates && valid interval Resource_Booking_Ajax_Common::check_if_valid_start_end_i_u_d_or_die($start, $end, $resource_info); // Check if it doesn't overlap any booking or die Resource_Booking_Ajax_Common::check_if_not_overlapping_or_die($this->rb_db, $resource_id, null, $start, $end); // Sanitize details $details = strip_tags($details); // Validation done - good to insert data // Insert the new booking $booking = $this->rb_db->insert_booking($resource_id, $client_id, $client_username, $start, $end, $details); if (false === $booking) { // And die wp_send_json_error(array("message" => "Could not insert the booking!")); } else { $response = new stdClass(); $response->success = true; $response->booking = array("id" => $booking->id, "resource_id" => $booking->resource_id, "user_id" => $booking->user_id, "username" => esc_html($booking->username), "start" => $booking->start, "end" => $booking->end, "details" => esc_html($booking->details), "personal" => true); 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 }