From f96f7159c5f2d14b3a4fdde00842b5eb7cb92840 Mon Sep 17 00:00:00 2001
From: ComeF2 <123363885+ComeF2@users.noreply.github.com>
Date: Mon, 13 Feb 2023 14:43:44 +0100
Subject: [PATCH] Modification HTTP request finie

---
 Twidder (Lab3)/database.db      | Bin 28672 -> 36864 bytes
 Twidder (Lab3)/static/client.js | 125 +++++++++++++++++++-------------
 2 files changed, 73 insertions(+), 52 deletions(-)

diff --git a/Twidder (Lab3)/database.db b/Twidder (Lab3)/database.db
index 66d51ef5753cec13b9a522b7313c94d5590ea80e..8e9c99512952eb7006ed8459068fbfa3beb3d0e1 100644
GIT binary patch
delta 1324
zcmZp8z}T>WX@WHCO9lo8&WQ^4j4wAPEazwB-pnB|m5<AmnL}JsR8&$^a`JLHb*{v!
z)S{Bg(xQ^e%{Sz97<pLumoo65=HJf0l>gpl0fi=h76t|e;mOnV-5J>@C)$f{{;V%3
zz{A2X!pQH%zl&dlziG38!&yE}1_lOm&D_F@v}BJ!*D`a9O!vG(H`A)L$V?|s3lqm=
z7sr&6bf2KK(8+B6wHoZqp_<vQImKB99{%|*=7veGriB3(sfNb>-YHoTf#Fp-9>po?
zjwX{=`-k$eGB7YO^1o*Qd58b~WWInJGZtOuZ_KBe7c*Bd2QVuz{bIVrw34ZbDV#}{
ziIwpd<9fyx##lxZMlOa23_BSZ7*xYq88kITC&!1#2o#qUmuZBtGH7c`W|ih-rcQnk
zA|aGkl~$FOs1b@P%#oT_m6lqi9x^#9M3J{RsVph2STz`K6n9EmS(RoGh%XB=TBHnQ
zc2aSfW+2EMX}Ixx#bpX<Woapz0dTeaWksoFsb#4}YW^TGagcuYl+?78bPd1BYeN+I
z%BsLn(-$NSHl9B@r7AhKD!EG42P6je4O?<ba<aNN*nMRwWyL8eYF;2ouz7-&rJ4B!
zDxM(62*Mr18JVx=0aBw5vQyGAC%>pzAtzCxDnBn(%^jpx6sA^&N7D@?fbfZMP^xZa
zzJj8fD@Yu!P(mOwUqMmR1tf@2%vX_ImXwv9W9kgD&J<*wbVz<_i9&IzLP272ajHU6
zW@?^-y`~dL9_&XBuT+JC{Nj?-%@HBfxj_-n5x)6L{C|FtC{XmnFfRiGLpa0E$?O5m
zqe%gpu!nO}Si{Z5%wNO6e~N!0f6ZpWggkzB<tR|15uDr*E5jR^uO12FN#-UNB~P}G
dmlVt|P0laXhybNWq+Fg{m|U2W3`;~H8USM2c!vN0

delta 266
zcmZozz|`=7ae_4KJO%~^_K6DijPo`oEazur-^?K}m5<AknL}JsR8&$^aq@CGb*{X!
zg2dwD^8BKd%{Sz97<pLvCo%A!=HJdgiGS&40fi=h79nO$#>vz4-5FUXC)$f{{;V%3
zz{ARSmyzF#zlnbrzsP0*hqHW|rtHk2n#PHSxxOJr9*Ir{W?uef9;s##C5dU~na*LQ
zUO9%IKHkMa8I#%kYc*JyLp3d<DqJf(N-81?TvBt5f(*S<T_ZCsEi*FAy#35eJuK5I
zO{ylZ_79!pz{2Io62ZW~oxhmhWHMhs&Bn%a%<SrptPGl(l9L|>%51JK>EzzblJK6N
J*O37U002-!N{|2m

diff --git a/Twidder (Lab3)/static/client.js b/Twidder (Lab3)/static/client.js
index ca131a4..25cee84 100644
--- a/Twidder (Lab3)/static/client.js	
+++ b/Twidder (Lab3)/static/client.js	
@@ -45,25 +45,45 @@ function checkPasswords(formData){
 }
 
 function changePassword(formData) {
-  let oldPassword = formData.oldPassword.value;
-  let newPassword = formData.newPassword.value;
-  let newPassword2 = formData.newPassword2.value;
+  let old_Password = formData.oldPassword.value;
+  let new_Password = formData.newPassword.value;
+  let new_Password2 = formData.newPassword2.value;
 
-  if(newPassword.length < 6) {
+  if(new_Password.length < 6) {
     document.getElementById("pwderror").style.display = "block";
     document.getElementById("pwderror").innerHTML = "Your new password must be 6 characters at least.";
-  } else if (newPassword != newPassword2) {
+  } else if (new_Password != new_Password2) {
     document.getElementById("pwderror").style.display = "block";
     document.getElementById("pwderror").innerHTML = "Your didn't enter the same passwords.";
   } else {
-    let serverAnswer = serverstub.changePassword(localStorage.getItem("token"), oldPassword, newPassword);
-    let success = serverAnswer.success;
-    let message = serverAnswer.message;
-    let form = document.getElementById("changePassword");
+    let value = {
+      oldPassword : old_Password,
+      newPassword : new_Password
+    }
+    let req = new XMLHttpRequest();
+    req.open("PUT", "/account/change_password", true);
+    req.setRequestHeader("Content-type", "application/json;charset=UTF-8");
+    req.setRequestHeader("token", localStorage.getItem("token"));
+    req.send(JSON.stringify(value));
     document.getElementById("pwderror").style.display = "block";
-    document.getElementById("pwderror").innerHTML = message;
-    if(success) {
-      form.reset();
+    req.onreadystatechange = function() {
+      if (req.readyState == 4){
+        if (req.status == 204){
+          document.getElementById("pwderror").innerHTML = "Password changed"
+          let form = document.getElementById("changePassword");
+          form.reset();
+        } else if (req.status == 404){
+          document.getElementById("pwderror").innerHTML = "Not found"
+        } else if (req.status == 403){
+          document.getElementById("pwderror").innerHTML = "Old password wrong"
+        } else if (req.status == 401){
+          document.getElementById("pwderror").innerHTML = "You are not online"
+        } else if (req.status == 405){
+          document.getElementById("pwderror").innerHTML = "Password too short. Must be 6 characters at leats."
+        } else if (req.status == 400){
+          document.getElementById("pwderror").innerHTML = "Missing information"
+        } 
+      }
     }
   }
 }
@@ -215,13 +235,17 @@ function message_management(tab){
     let token = localStorage.getItem("token");
 
     let req = new XMLHttpRequest();
-    console.log("Message posté ?");
     req.open("POST", "/account/post_message", true);
     req.setRequestHeader("Content-type", "application/json;charset=UTF-8");
     req.setRequestHeader("token", token);
     req.send(JSON.stringify(value));
-
-    display_wall(email, tab);
+    req.onreadystatechange = function(){
+      if (req.readyState == 4){
+        if (req.status == 201){
+          display_wall(email, tab);
+        }
+      }
+    }
   }
 
   textaera.value = "";
@@ -245,7 +269,11 @@ function openTab(tabName) {
   localStorage.setItem("tab", tabName);
 
   if(tabName != "browsePage") {
-    if(!(serverstub.getUserMessagesByEmail(localStorage.getItem("token"), localStorage.getItem("browsed_email")).success)) {
+    var xhttp = new XMLHttpRequest();
+    xhttp.open("GET", "/account/get/message/" + localStorage.getItem("browsed_email"), true);
+    xhttp.setRequestHeader("token", localStorage.getItem("token"));
+    xhttp.send();
+    if (xhttp.readyState == 4 && xhttp.status != 204){
       localStorage.removeItem("browsed_email");
     }
   }
@@ -277,67 +305,61 @@ function openTab(tabName) {
 
 function display_wall_info(email, tab) {
   //check if we already have the data stored of if we have to call the server
-  let data_user = get_user_info(email, tab);
-  console.log("data_user of display_wall_info = ", data_user);
-  if(data_user.success) {
-    if(tab == "BP") {
+  let data_user;
+  get_user_info(email, tab, function(data){
+    data_user = data;
+    if(data_user.success) {
+      if(tab == "BP") {
+        browsecontent = document.getElementsByClassName("browsecontent");
+        for (i = 0; i < browsecontent.length; i++) {
+          document.getElementById("browse_error").style.display = "none";
+          browsecontent[i].style.display = "block";
+        }
+      }
+      fills_data(tab, data_user);
+      display_wall(email, tab);
+    } else {
       browsecontent = document.getElementsByClassName("browsecontent");
       for (i = 0; i < browsecontent.length; i++) {
-        document.getElementById("browse_error").style.display = "none";
-        browsecontent[i].style.display = "block";
+        browsecontent[i].style.display = "none";
       }
+      if (localStorage.getItem("browsed_email") != null){
+        document.getElementById("browse_error").style.display = "block";
+        document.getElementById("browse_error").innerHTML = data_user.message;
+      }
+
     }
-    fills_data(tab, data_user);
-    display_wall(email, tab);
-  } else {
-    browsecontent = document.getElementsByClassName("browsecontent");
-    for (i = 0; i < browsecontent.length; i++) {
-      browsecontent[i].style.display = "none";
-    }
-    document.getElementById("browse_error").style.display = "block";
-    document.getElementById("browse_error").innerHTML = data_user.message;
-  }
+  });
 }
 
 
-function get_user_info(email, tab) {
+function get_user_info(email, tab, callback) {
   //call the server if data aren't already stored
-  console.log("=================================================");
-  console.log("browsed_email = ", localStorage.getItem("browsed_email"));
   if((tab == "BP") && (localStorage.getItem("browsed_email") != email || data_user_browse == null)) {
-    console.log("Je rentre dans la boucle");
-    //data_user_browse = serverstub.getUserDataByEmail(localStorage.getItem("token"), email);
     let req = new XMLHttpRequest();
-    console.log(1);
     req.open("GET", "/account/get/data/" + email, true);
-    console.log(2);
     req.setRequestHeader("token", localStorage.getItem("token"));
-    console.log(3);
-    console.log(4);
     req.onreadystatechange = function(){
-      console.log(5);
       if(req.readyState == 4){
-        console.log(6);
         if(req.status == 200){
           data_user_browse = {
             data : JSON.parse(req.responseText),
             success : true
           };
-
+          callback(data_user_browse);
         }else if(req.status == 404){
-          console.log("Le req status est de 404");
           data_user_browse = {
             message : "This user doesn't exist",
             success : false
           };
-        }
-        else if(req.status == 401){
+          callback(data_user_browse);
+        }else if(req.status == 401){
           data_user_browse = {
             message : "Problem with the server",
             success : false
           };
+          callback(data_user_browse);
         }
-        console.log("first data_user_browse = ", data_user_browse);
       }
     };
     req.send();
@@ -353,10 +375,12 @@ function get_user_info(email, tab) {
             data : JSON.parse(req.responseText),
             success : true
           };
+          callback(data_user_home);
         }else if(req.status == 404 || req.status == 401){
           data_user_home = {
             success : false
           };
+          callback(data_user_home);
         }
       }
     }
@@ -366,21 +390,18 @@ function get_user_info(email, tab) {
   switch(tab) {
     case "HP" :
       data_user = data_user_home;
-      console.log("data_user_home = ", data_user_home);
       break;
     default :
       data_user = data_user_browse;
-      console.log("data_user_browse lolololol = ", data_user_browse);
       break;
   }
-  return data_user;
+  callback(data_user);
 }
 
 function display_wall(email, tab) {
   let messages = [];
 
   var xhttp = new XMLHttpRequest();
-  console.log("Je suis dans display_wall");
   xhttp.open("GET", "/account/get/message/" + email, true);
   xhttp.setRequestHeader("token", localStorage.getItem("token"));
   xhttp.onreadystatechange = function() {
-- 
GitLab