diff --git a/Twidder (Lab3)/database.db b/Twidder (Lab3)/database.db index 66d51ef5753cec13b9a522b7313c94d5590ea80e..8e9c99512952eb7006ed8459068fbfa3beb3d0e1 100644 Binary files a/Twidder (Lab3)/database.db and b/Twidder (Lab3)/database.db differ diff --git a/Twidder (Lab3)/static/client.js b/Twidder (Lab3)/static/client.js index ca131a4fb1219095a3e2b1bd303302b6be9aad1d..25cee84161d538768edc0df0f06e3eddef4587de 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() {