diff --git a/src/API/requests.php b/src/API/requests.php
index 42e4ae4..144d77a 100644
--- a/src/API/requests.php
+++ b/src/API/requests.php
@@ -16,10 +16,6 @@ $pdo = dbConnect();
$router = new Router();
-$router->GET('/api/requests', ["test"], function($test){
- echo json_encode($test);
-});
-
$router->GET('/api/search-type', ["type"], function($type){
global $pdo;
searchDoctor($pdo, $type);
@@ -58,9 +54,6 @@ $router->PUT('/api/rdv', ["rdv_id", "patient_id"], function($rdv_id, $patient_id
global $pdo;
takeRDV($pdo, $rdv_id, $patient_id);
});
-$router->POST('/api/requests', ["test"], function($test){
- echo json_encode($test);
-});
$router->POST('/api/login/patient', ["mail", "password"], function($mail, $password){
global $pdo;
@@ -117,13 +110,10 @@ $router->PUT('/api/change/mail', ["id", "currentMail", "newMail"], function($id,
Patient::updateMail($pdo, $id, $currentMail, $newMail);
});
-$router->PUT('/api/requests', ["test"], function($test){
- echo json_encode($test);
-});
-$router->DELETE('/api/requests', ["test"], function($test){
- echo json_encode($test);
-});
+//Yanis Part
+
+
$router->GET('/api/rdv-praticient', ["id"], function($id){
global $pdo;
@@ -135,20 +125,19 @@ $router->GET('/api/rdv-praticient/getAllLieux', [], function(){
getAllLieux($pdo);
});
-$router->GET('/api/rdv-patient', ["id"], function($id){
+$router->GET('/api/next-rdv-patient', ["id"], function($id){
global $pdo;
dbRequestRdvPatient($pdo, $id);
+});
+
+$router->GET('/api/past-rdv-patient', ["id"], function($id){
+ global $pdo;
getPastRdvByPatient($pdo, $id);
});
-$router->DELETE('/api/delete-empty', ["id"], function($id){
+$router->DELETE('/api/cancel-empty-rdv', ["id"], function($id){
global $pdo;
- DeleteEmptyRdv($pdo, $id);
-});
-
-$router->DELETE('/api/cancel-rdv', ["id"], function($id){
- global $pdo;
- CancelRDV($pdo, $id);
+ CancelEmptyRDV($pdo, $id);
});
$router->POST('/api/create-rdv', ["medID", "date", "time", "lieu"], function($medID, $date, $time, $lieu){
@@ -156,4 +145,11 @@ $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
+
$router->run();
diff --git a/src/API/test/database.php b/src/API/test/database.php
index 6c0b3e8..74f9dfd 100644
--- a/src/API/test/database.php
+++ b/src/API/test/database.php
@@ -1,22 +1,6 @@
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- }
- catch (PDOException $exception)
- {
- error_log('Connection error: '.$exception->getMessage());
- return false;
- }
- return $db;
-}*/
-
-
function dbRequestRdvPraticien($pdo, $id){
$statement = $pdo->prepare("SELECT rdv_date, rdv_time, concat(p_name,' ', p_surname) as patient, p_mail, p_phone
FROM rendez_vous
@@ -32,16 +16,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, 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
@@ -49,21 +28,18 @@ function dbRequestRdvPatient($pdo, $id){
INNER JOIN lieu on lieu.l_id = rendez_vous.l_id
WHERE NOW() <= (rdv_date + rdv_time) AND patient.p_id = :id
- ORDER BY rdv_date ASC, rdv_time ASC");
+ ORDER BY rdv_date ASC, rdv_time ASC
+ LIMIT 5");
$statement->bindParam(':id', $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, 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 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
@@ -137,17 +113,19 @@ function CreateRDV($pdo, $medID, $date, $time, $lieu){
}
}
-function DeleteEmptyRdv($pdo, $id)
-{
- $statement = $pdo->prepare("SELECT p_id FROM rendez_vous WHERE rdv_id = :id");
+function CancelEmptyRDV($pdo, $id){
+ $statement = $pdo->prepare("DELETE FROM propose WHERE rdv_id = :id");
$statement->bindParam(':id', $id);
$statement->execute();
- $result = $statement->fetch(PDO::FETCH_ASSOC);
- if ($result['p_id'] == null) {
- $statement = $pdo->prepare("DELETE FROM rendez_vous WHERE rdv_id = :id");
- $statement->bindParam(':id', $id);
- $statement->execute();
- Response::HTTP200(["Success" => "RDV deleted"]);
- }
- Response::HTTP403(["Forbidden" => "This RDV is not empty"]);
+ $statement = $pdo->prepare("DELETE FROM rendez_vous WHERE rdv_id = :id");
+ $statement->bindParam(':id', $id);
+ $statement->execute();
+ Response::HTTP200(["Success" => "RDV deleted"]);
+}
+
+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/API/test/request.php b/src/API/test/request.php
deleted file mode 100644
index 11aedc2..0000000
--- a/src/API/test/request.php
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
+
Doct'ISEN
-
+
${user.name} ${user.surname}
@@ -137,6 +139,8 @@ function displayHome(text) {
`;
attachSearchEventListener();
attachLoginUserDisplayEventListener();
+ ButtonShowRdvPraticient();
+ ButtonShowRdvPatient();
if(text !== ""){
displayAlert(text);
}
diff --git a/src/js/AJAX/index.js b/src/js/AJAX/index.js
index 7df81af..091a053 100644
--- a/src/js/AJAX/index.js
+++ b/src/js/AJAX/index.js
@@ -3,6 +3,7 @@ import {attachLoginUserDisplayEventListener, attachLoginPraticienDisplayEventLis
//import {TokenDecode} from "./lib.js";
import {displayHome, displayHomeTopBar, attachReturnHomeEventListener} from "./home.js";
import {ButtonShowRdvPraticient} from "./rdv-praticien.js";
+import {ButtonShowRdvPatient} from "./rdv-patient.js";
console.log("index.js loaded");
@@ -20,6 +21,10 @@ document.addEventListener("DOMContentLoaded", function() {
ButtonShowRdvPraticient();
});
+document.addEventListener("DOMContentLoaded", function() {
+ ButtonShowRdvPatient();
+});
+
//End Call
ButtonShowRdvPraticient();
diff --git a/src/js/AJAX/rdv-patient.js b/src/js/AJAX/rdv-patient.js
new file mode 100644
index 0000000..e0c42b0
--- /dev/null
+++ b/src/js/AJAX/rdv-patient.js
@@ -0,0 +1,229 @@
+import {TokenDecode} from "./lib.js";
+import {displayCalendar} from "./take-rdv.js";
+import {displaySearchTopBar, attachSearchEventListener} from "./search.js";
+import {attachReturnHomeEventListener, attachProfileEventListener, horizontalDropdown} from "./home.js";
+
+function ButtonShowRdvPatient() {
+ try {
+ document.getElementById("user-calendar").addEventListener("click", DisplayRDVPatientPage);
+ }
+ catch (e) {
+ //Do nothing
+ //console.error(e);
+ }
+}
+
+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 = "
Vos rendez-vous à venir
";
+ if(rdv === null || rdv.length === 0){
+ next_rdv.innerHTML += "
" +
+ "
" +
+ "
Vous n'avez pas de rendez-vous à venir
" +
+ " ";
+ }
+ else{
+ for(let i = 0; i < rdv.length; i++) {
+ next_rdv.innerHTML += "
" +
+ "
" +
+ "
" + rdv[i].medecin + "
" +
+ "" + rdv[i].med_spe + "
" +
+ " ";
+ }
+ }
+ next_rdv.innerHTML += "
"
+}
+
+
+function attachEventListener(i, id) {
+ document.getElementById("retake-rdv-" + i + "-" + id).addEventListener("click", function () {
+ let today = new Date();
+ let date = today.getFullYear() + "-" + (today.getMonth() + 1).toString().padStart(2, "0") + "-" + today.getDate().toString().padStart(2, "0");
+ ajaxRequest('GET', "src/API/requests.php/api/rdv-date?date=" + date + "&id=" + id, function (data) {
+ displayCalendar(data);
+ });
+ });
+}
+
+
+function DisplayPastRDVPatient(past_rdv, rdv) {
+ past_rdv.innerHTML = "
Vos rendez-vous passés
";
+ if(rdv.length === 0){
+ past_rdv.innerHTML += "
Vous n'avez pas de rendez-vous passé
";
+ }
+ else{
+ for(let i = 0; i < rdv.length; i++) {
+ past_rdv.innerHTML += "
" +
+ "
" +
+ "
" + rdv[i].medecin + "
" +
+ "" + rdv[i].med_spe + "
" +
+ " ";
+ }
+ for(let i = 0; i < rdv.length; i++) {
+ document.getElementById("retake-rdv-" + i + "-" + rdv[i].m_id).addEventListener("click", function () {
+ attachEventListener(i, rdv[i].m_id);
+ });
+ }
+ }
+}
+
+
+function attachEventListenerDeplacer(rdv){
+ document.getElementById("deplacer_button").addEventListener("click", function () {
+ let id = rdv[0].m_id;
+ let rdv_id = rdv[0].rdv_id;
+ let data = "id=" + rdv_id
+ let today = new Date();
+ let date = today.getFullYear() + "-" + (today.getMonth() + 1).toString().padStart(2, "0") + "-" + today.getDate().toString().padStart(2, "0");
+ console.log(data);
+ ajaxRequest('PUT', "src/API/requests.php/api/cancel-rdv-patient", function () {
+ console.log("Rendez-vous annulé");
+ ajaxRequest('GET', "src/API/requests.php/api/rdv-date?date=" + date + "&id=" + id, function (data) {
+ displayCalendar(data);
+ });
+ }, data);
+
+ });
+}
+
+function attachEventListenerAnnuler(rdv){
+ document.getElementById("cancel_button").addEventListener("click", function () {
+ let id = rdv[0].rdv_id;
+ let data = "id=" + id
+ console.log(data);
+ ajaxRequest('PUT', "src/API/requests.php/api/cancel-rdv-patient", function (id) {
+ console.log("Rendez-vous annulé");
+ DisplayRDVPatientPage();
+ },data);
+ });
+
+}
+
+function DisplayRDV(the_rdv, rdv){
+ if(rdv.length === 0){
+ the_rdv.innerHTML = "
" +
+ "
" +
+ "
Vous n'avez pas de rendez-vous à venir
" +
+ " ";
+ }
+ else{
+ the_rdv.innerHTML += "
" +
+ "" +
+ "
" +
+ "
" + rdv[0].medecin + "
" +
+ "" + rdv[0].med_spe + "
" +
+ "" +
+ "" +
+ "
" +
+ "
" +
+ "
" +
+ "
Préparer la consulation
" +
+ "Pour gagner du temps et améliorer votre prise en charge.
" +
+ "" +
+ "" +
+ "
" +
+ "
" +
+ "
" +
+ "
Patient
" +
+ "" + rdv[0].patient + "
" +
+ "" +
+ "
" +
+ "
" +
+ "
" +
+ "
Lieu de la consulation
" +
+ "" + rdv[0].adresse + "
" +
+ rdv[0].ville + "
" +
+ "" +
+ "
"
+ attachEventListenerDeplacer(rdv);
+ attachEventListenerAnnuler(rdv);
+ }
+}
+
+export {ButtonShowRdvPatient};
\ No newline at end of file
diff --git a/src/js/AJAX/rdv-praticien.js b/src/js/AJAX/rdv-praticien.js
index 3ac7a73..4a59dd5 100644
--- a/src/js/AJAX/rdv-praticien.js
+++ b/src/js/AJAX/rdv-praticien.js
@@ -1,4 +1,5 @@
import {TokenDecode} from "./lib.js";
+import {attachReturnHomeEventListener} from "./home.js";
function ButtonShowRdvPraticient() {
try {
@@ -6,6 +7,7 @@ function ButtonShowRdvPraticient() {
let user = TokenDecode(sessionStorage.getItem("token"));
ajaxRequest('GET', "src/API/requests.php/api/rdv-praticient?id=" + user.id, function (data) {
DisplayRDVPraticient(data);
+ attachReturnHomeEventListener();
console.log(data);
});
});
@@ -16,20 +18,62 @@ function ButtonShowRdvPraticient() {
}
}
+function attachCancelEventListener(rdv_id, i) {
+ const idBtn = "cancel_button" + i;
+ console.log(idBtn);
+ console.log(i);
+ let Btn = document.getElementById(idBtn);
+ if(Btn !== null){
+ console.log("je suis là");
+ console.log(Btn);
+ Btn.addEventListener("click", function (event) {
+ console.log("hello");
+ let data = 'rdv_id=' + rdv_id;
+ console.log(data);
+ /*
+ ajaxRequest('DELETE', "src/API/requests.php/api/cancel-rdv", function (data) {
+ console.log(data);
+ ButtonShowRdvPraticient();
+ attachReturnHomeEventListener();
+ ajaxRequest('GET', "src/API/requests.php/api/rdv-praticient?id=" + user.id, function (data) {
+ DisplayRDVPraticient(data);
+ console.log(data);
+ });
+ }, data);*/
+ });
+ }
+ else{
+ console.log("je suis pas là")
+ }
+}
+
+
function DisplayRDVPraticient(rdv){
let count = rdv.length;
let content = document.getElementById("content");
content.innerHTML = "";
- content.innerHTML = '
';
+ let h100 = document.createElement("div");
+ h100.classList.add("h-100");
+ let container = document.createElement("div");
+ container.classList.add("d-flex", "flex-row", "flex-wrap", "my-5", "mx-5", "gap-5", "justify-content-center", "text-center");
if(count === 0){
- content.append('
Vous n\'avez pas de rendez-vous
');
+ container.innerHTML += '
' +
+ '' +
+ '
' +
+ '
Vous n\'avez pas de créneaux de planifié
' +
+ '' + '
';
}
else {
for (let i = 0; i < count; i++) {
console.log(rdv[i]);
+
+ let card = document.createElement("div");
+ card.classList.add("card", "rounded-4", "mx-2", "pointer");
if (rdv[i].p_mail !== null) {
- content.innerHTML += '
' +
- '