diff --git a/src/API/requests.php b/src/API/requests.php index 4516642..52079a8 100644 --- a/src/API/requests.php +++ b/src/API/requests.php @@ -150,6 +150,10 @@ $router->POST('/api/create-rdv', ["medID", "date", "time", "lieu"], function($me CreateRDV($pdo, $medID, $date, $time, $lieu); }); +$router->PUT('/api/cancel-rdv-patient', ["id"], function($id){ + global $pdo; + CancelRDVFromPatient($pdo, $id); +}); //End of Yanis Part diff --git a/src/API/test/database.php b/src/API/test/database.php index 8d4384e..75fd92e 100644 --- a/src/API/test/database.php +++ b/src/API/test/database.php @@ -32,16 +32,11 @@ function dbRequestRdvPraticien($pdo, $id){ $statement->execute(); $result = $statement->fetchAll(PDO::FETCH_ASSOC); - if (!empty($result)) { - Response::HTTP200($result); - } else { - Response::HTTP404(["error" => "No data found"]); - } - + Response::HTTP200($result); } function dbRequestRdvPatient($pdo, $id){ - $statement = $pdo->prepare("SELECT rdv_date, rdv_time, concat(m_name, ' ', m_surname) as medecin, medecin.m_specialty as med_spe, medecin.m_id, concat(p_name, ' ', p_surname) as patient, l_adress as adresse, concat(l_postal, ' ', l_city) as ville + $statement = $pdo->prepare("SELECT rendez_vous.rdv_id, rdv_date, rdv_time, concat(m_name, ' ', m_surname) as medecin, medecin.m_specialty as med_spe, medecin.m_id, concat(p_name, ' ', p_surname) as patient, l_adress as adresse, concat(l_postal, ' ', l_city) as ville FROM rendez_vous INNER JOIN patient ON rendez_vous.p_id = patient.p_id INNER JOIN propose ON rendez_vous.rdv_id = propose.rdv_id @@ -56,15 +51,11 @@ function dbRequestRdvPatient($pdo, $id){ $statement->execute(); $result = $statement->fetchAll(PDO::FETCH_ASSOC); - if (!empty($result)) { - Response::HTTP200($result); - } else { - Response::HTTP404(["error" => "No data found"]); - } + Response::HTTP200($result); } function getPastRdvByPatient($pdo, $id){ - $statement = $pdo->prepare("SELECT rdv_date, rdv_time, concat(m_name, ' ', m_surname) as medecin, medecin.m_specialty as med_spe, medecin.m_id as med_id, concat(p_name, ' ', p_surname) as patient, l_adress as adresse, concat(l_postal, ' ', l_city) as ville + $statement = $pdo->prepare("SELECT rdv_date, rdv_time, concat(m_name, ' ', m_surname) as medecin, medecin.m_specialty as med_spe, medecin.m_id, concat(p_name, ' ', p_surname) as patient, l_adress as adresse, concat(l_postal, ' ', l_city) as ville FROM rendez_vous INNER JOIN patient ON rendez_vous.p_id = patient.p_id INNER JOIN propose ON rendez_vous.rdv_id = propose.rdv_id @@ -151,4 +142,11 @@ function DeleteEmptyRdv($pdo, $id) Response::HTTP200(["Success" => "RDV deleted"]); } Response::HTTP403(["Forbidden" => "This RDV is not empty"]); +} + +function CancelRDVFromPatient($pdo, $id){ + $statement = $pdo->prepare("UPDATE public.rendez_vous SET p_id = null WHERE rdv_id = :id"); + $statement->bindParam(':id', $id); + $statement->execute(); + Response::HTTP200(["Success" => "RDV deleted"]); } \ No newline at end of file diff --git a/src/js/AJAX/home.js b/src/js/AJAX/home.js index 2ce4fb1..b3a9fad 100644 --- a/src/js/AJAX/home.js +++ b/src/js/AJAX/home.js @@ -2,6 +2,8 @@ import {TokenDecode} from "./lib.js"; import {attachSearchEventListener, removeSearchTopBar} from "./search.js"; import {displayAlert} from "./alert.js"; import {attachLoginPraticienDisplayEventListener, attachLoginUserDisplayEventListener, attachDisconnectEventListener} from "./login.js"; +import {ButtonShowRdvPraticient} from "./rdv-praticien.js"; +import {ButtonShowRdvPatient} from "./rdv-patient.js"; console.log("home.js loaded"); function displayHomeTopBar() { @@ -137,6 +139,8 @@ function displayHome(text) { `; attachSearchEventListener(); attachLoginUserDisplayEventListener(); + ButtonShowRdvPraticient(); + ButtonShowRdvPatient(); if(text !== ""){ displayAlert(text); } diff --git a/src/js/AJAX/rdv-patient.js b/src/js/AJAX/rdv-patient.js index 3d82ce7..e01e3e4 100644 --- a/src/js/AJAX/rdv-patient.js +++ b/src/js/AJAX/rdv-patient.js @@ -5,65 +5,7 @@ import {attachReturnHomeEventListener, attachProfileEventListener, horizontalDro function ButtonShowRdvPatient() { try { - document.getElementById("user-calendar").addEventListener("click", function () { - let content = document.getElementById("content"); - content.innerHTML = ""; - let h100 = document.createElement("div"); - h100.classList.add("h-100"); - let row = document.createElement("div"); - row.classList.add("row"); - let column = document.createElement("div"); - column.classList.add("col-3", "border-end", "border-dark", "border-3", "h-100", "mt-2", "text-center", "d-flex", "flex-column", "justify-content-center"); - let column2 =document.createElement("div"); - column2.classList.add("d-flex", "flex-column"); - let next_rdv = document.createElement("div"); - next_rdv.classList.add("border-bottom", "pb-3", "border-dark", "border-3", "align-self-center"); - - - - let nextRDV; - let past_rdv = document.createElement("div"); - let the_rdv = document.createElement("div"); - let searchbar = document.createElement("div") - let user = TokenDecode(sessionStorage.getItem("token")); - ajaxRequest('GET', "src/API/requests.php/api/next-rdv-patient?id=" + user.id, function (data) { - nextRDV = data - DisplayNextRDVPatient(next_rdv, data); - - past_rdv.classList.add("mt-3", "align-self-center", "d-flex", "flex-column", "gap-2"); - ajaxRequest('GET', "src/API/requests.php/api/past-rdv-patient?id=" + user.id, function (data) { - DisplayPastRDVPatient(past_rdv, data); - - the_rdv.classList.add("col", "border-end", "border-dark", "border-3", "h-100", "mt-2", "text-center", "d-flex", "flex-column", "justify-content-center"); - - DisplayRDV(the_rdv, nextRDV); - - searchbar.classList.add("col", "h-100"); - - displaySearchTopBar(); - searchbar.innerHTML = ` -
`; - - attachSearchEventListener(); - attachReturnHomeEventListener(); - attachProfileEventListener(); - horizontalDropdown(); - }); - }); - - column2.append(next_rdv) - column2.append(past_rdv) - column.append(column2) - row.append(column) - row.append(the_rdv) - row.append(searchbar) - h100.appendChild(row); - content.appendChild(h100); - }); + document.getElementById("user-calendar").addEventListener("click", DisplayRDVPatientPage); } catch (e) { //Do nothing @@ -71,10 +13,74 @@ function ButtonShowRdvPatient() { } } +function DisplayRDVPatientPage(){ + let content = document.getElementById("content"); + content.innerHTML = ""; + let h100 = document.createElement("div"); + h100.classList.add("h-100"); + let row = document.createElement("div"); + row.classList.add("row"); + let column = document.createElement("div"); + column.classList.add("col-3", "border-end", "border-dark", "border-3", "h-100", "mt-2", "text-center", "d-flex", "flex-column", "justify-content-center"); + let column2 =document.createElement("div"); + column2.classList.add("d-flex", "flex-column"); + let next_rdv = document.createElement("div"); + next_rdv.classList.add("border-bottom", "pb-3", "border-dark", "border-3", "align-self-center"); + + + + let nextRDV; + let past_rdv = document.createElement("div"); + let the_rdv = document.createElement("div"); + let searchbar = document.createElement("div") + let user = TokenDecode(sessionStorage.getItem("token")); + ajaxRequest('GET', "src/API/requests.php/api/next-rdv-patient?id=" + user.id, function (data) { + nextRDV = data + DisplayNextRDVPatient(next_rdv, data); + + past_rdv.classList.add("mt-3", "align-self-center", "d-flex", "flex-column", "gap-2"); + ajaxRequest('GET', "src/API/requests.php/api/past-rdv-patient?id=" + user.id, function (data) { + DisplayPastRDVPatient(past_rdv, data); + + the_rdv.classList.add("col", "border-end", "border-dark", "border-3", "h-100", "mt-2", "text-center", "d-flex", "flex-column", "justify-content-center"); + + DisplayRDV(the_rdv, nextRDV); + + searchbar.classList.add("col", "h-100"); + searchbar.innerHTML = ` + `; + + attachSearchEventListener(); + attachReturnHomeEventListener(); + attachProfileEventListener(); + horizontalDropdown(); + }); + }); + + column2.append(next_rdv) + column2.append(past_rdv) + column.append(column2) + row.append(column) + row.append(the_rdv) + row.append(searchbar) + h100.appendChild(row); + content.appendChild(h100); +} + function DisplayNextRDVPatient(next_rdv, rdv){ next_rdv.innerHTML = "Vous n'avez pas de rendez-vous à venir
"; + if(rdv === null || rdv.length === 0){ + next_rdv.innerHTML += "" + + "
Vous n'avez pas de rendez-vous à venir
" + + "
' + + '