diff --git a/Lab_3/Twidder/server.py b/Lab_3/Twidder/server.py index 2a925c75710513d4bcdc3b88f6d3824a9ef382b8..c167af9baa4955f519dbb10c5baa3f4c427442fb 100644 --- a/Lab_3/Twidder/server.py +++ b/Lab_3/Twidder/server.py @@ -7,6 +7,8 @@ import database_helper #PUT for updating data, POST for adding new data #save token on client and server (lab 3) +# source "/Users/lorenzo/OneDrive - Linköpings universitet/Skola/DI3B/TDDD97/virtualenv/bin/activate" +# python3 server.py # http://127.0.0.1:5000/myServer' # sqlite3 database.db ".read schema.sql" @@ -236,7 +238,6 @@ def get_user_messages_by_token(): email = session[token] return get_user_messages_by_email(email) - @app.route("/myServer/getMessagesByEmail/<req_email>", methods=['GET']) def get_user_messages_by_email(req_email): """Get user's message wall thought the email of the user""" diff --git a/Lab_3/Twidder/static/client.js b/Lab_3/Twidder/static/client.js index 103980459c111384131443e3820d56a932cec583..18db399d1c34aa88254c512fd389e074abf29af4 100644 --- a/Lab_3/Twidder/static/client.js +++ b/Lab_3/Twidder/static/client.js @@ -5,10 +5,22 @@ var welcomeDiv; var profileDiv; var url = 'http://127.0.0.1:5000/myServer/'; - +// source "/Users/lorenzo/OneDrive - Linköpings universitet/Skola/DI3B/TDDD97/virtualenv/bin/activate" // - - - - - Init Request Objects - - - - - // +//Todo (Lawrence) +/* + Sign up + change password + post message (+ updateWall) + get message by token (+ kommentera fram stycke i reloadWall) + +*/ + +// Todo - implement +// Sign Up Request Object + // Sign In Request Object var signInRequest = new XMLHttpRequest(); signInRequest.onreadystatechange = function() { @@ -19,7 +31,6 @@ signInRequest.onreadystatechange = function() { errorMessage.innerHTML = "You are signed in"; let token = this.getResponseHeader("Authorization") localStorage.setItem("currentUser", token); - // Changes the view to profile view an loads user info displayView(); @@ -72,8 +83,44 @@ signOutRequest.onreadystatechange = function() { } }; +var signUpRequest = new XMLHttpRequest(); +signInRequest.onreadystatechange = function () { + if (this.readyState == 4) { + + let errorMessage = document.getElementById("error"); + if (this.status == 204) { + errorMessage.innerHTML = "You are signed in"; + let token = this.getResponseHeader("Authorization") + localStorage.setItem("currentUser", token); + + // Changes the view to profile view an loads user info + displayView(); + + setUserDetails("home"); + // Todo - kommentera fram när den är klar + // reloadWall("home"); + } + else if (this.status == 400) { + // Todo - implement + console.log('got this: 400') + } + else if (this.status == 404) { + // Todo - implement + console.log('got this: 404') + } + else if (this.status == 401) { + // Todo - implement + console.log('got this: 401') + } + else { + // Todo - implement + console.log('unknown error -_-') + } + } +}; + // Todo - implement -// Change Password +// Change Password Request Object // Get use data by token var dataByTokenRequest = new XMLHttpRequest(); @@ -159,18 +206,25 @@ dataByEmailRequest.onreadystatechange = function() { }; // Todo - implement -// Get Messages By Token +// Get Messages By Token Request Object -// Get Messages By Email +// Get Messages By Email Request Object var messagesByEmailRequest = new XMLHttpRequest(); messagesByEmailRequest.onreadystatechange = function() { if (this.readyState == 4) { if (this.status == 200 || this.status == 204) { - let resultObj = JSON.parse(this.responseText); + let currentWall = JSON.parse(this.responseText); + + // Fromating the text before putting to wall + let complete = ""; + for (let i = 0; i < currentWall.data.length; i++) { + complete += currentWall.data[i].person_who_posted + ': ' + currentWall.data[i].message + "</br>"; + } + document.getElementById('browsePostedMessagesDiv').innerHTML = complete; // Todo - implement } @@ -194,10 +248,7 @@ messagesByEmailRequest.onreadystatechange = function() { }; // Todo - implement -// Post Message - - - +// Post Message Request Object // - - - - - Init functions - - - - - // @@ -209,8 +260,6 @@ displayView = function(){ windowDiv.innerHTML = profileDiv.innerHTML; }; - - // - - - - - The function when page loads - - - - - // window.onload = function () { @@ -271,7 +320,6 @@ function setUserDetails(who) { } - // - - - - - Sign Up/In/Out - - - - - // function sign_up() { @@ -302,27 +350,17 @@ function sign_up() { // // Set message to user // errorMess.innerHTML = signUpObj["message"]; - - //----------------//----------------//----------------//---------------- - let xhttp = new XMLHttpRequest(); - xhttp.onreadystatechange = function () { - if (this.readyState == 4 && this.status == 200) { - // Typical action to be performed when the document is ready: - errorMess.innerHTML = xhttp.responseText; - } - }; //xhttp.addEventListener("load", reqListener); - xhttp.open("POST", "http://127.0.0.1:5000/myServer/sign_up", true); - xhttp.setRequestHeader('Authorization', '1f191d40-c128-477d-9f9f-196c81810f02'); - //xhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); + xhttp.open("POST", url + "sign_up", true); + signInRequest.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); xhttp.send(JSON.stringify({ - "email": "k@k", - "password": "kass", - "firstname": "kk", - "familyname": "hello", - "gender": "male", - "city": "linköping", - "country": "swe" + email: email, + password: password, + firstname: firstname, + familyname: familyname, + gender: gender, + city: city, + country: country })); // obj = JSON.parse(xhttp.responseText); // alert(obj.alert) @@ -420,8 +458,6 @@ function change_password(ourEvent){ error_text.style.display = "block"; } - - // - - - - - Changing the wall - - - - - // // Submit text button @@ -446,15 +482,26 @@ function reloadWall(who) { let token = localStorage.getItem("currentUser"); let email = localStorage.getItem(who + "Email"); - // Todo - let currentWall = serverstub.getUserMessagesByEmail(token, email); + // Get messages from my own wall + if (who == 'home') { + // Send request to server about receiving the info - // Fromating the text before putting to wall - let complete = ""; - for (let i = 0; i < currentWall.data.length; i++) { - complete += currentWall.data[i].writer + ': ' + currentWall.data[i].content + "</br>"; + // Comment + // messagesByTokenRequest.open("GET", url + "getUserMessageByToken/" + email, true); + // messagesByTokenRequest.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); + // messagesByTokenRequest.setRequestHeader("Authorization", token) + // messagesByTokenRequest.send(); } - document.getElementById(who + 'PostedMessagesDiv').innerHTML = complete; + + // Get messages from another's wall + else if (who == 'browse' && email != null && email != "") { + // Send request to server about receiving the info + messagesByEmailRequest.open("GET", url + "getMessagesByEmail/" + email, true); + messagesByEmailRequest.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); + messagesByEmailRequest.setRequestHeader("Authorization", token) + messagesByEmailRequest.send(); + } + return false; }