/*
Modifier votre front (code fait à la section 2) pour qu'il interroge
l'API et indique à l'utilisateur si il existe en base de données
Elle contiendra au minimum :
- un fichier README indiquant comment installer votre projet et les routes disponibles
- un fichier package.json
- un fichier index.js contenant votre code Node
*/
import http from 'http';
import * as url from "url";
// npm i node-fetch
// https://www.npmjs.com/package/node-fetch
import fetch from 'node-fetch';
function outputHTML5(status, response, content, title)
{
response.writeHead(status, { 'Content-Type': 'text/html; charset=utf-8' });
response.write(
`
${title}
${content}
`
);
response.end();
}
var server = http.createServer(function (request, response) {
if(request.url === "/" && request.method==="GET") {
let formHtml = "";
outputHTML5(200,response,formHtml,"login");
}
else if(request.url === "/" && request.method==="POST") {
let responseString = "/?";
console.log("In post");
request.on('data', function (varposted) {
responseString += varposted;
}).on('end', async function () {
let parsedData = url.parse(responseString, true);
if(parsedData.query['email']) {
console.log('got' + parsedData.query['email'])
fetch('http://localhost:8088/check',
{
method:'POST',
body:responseString
}
)
.then(apiresponse =>
apiresponse.json()
)
.then( json => {
if(json.emailValid) {
outputHTML5(200,response,'Ok ! Connexion possible :)',"Cool!");
}
else {
outputHTML5(200,response,"Cet mail n'existe pas ou le mot de passe ne correspond pas à l'email","Zut!");
}
})
.catch(err => {
console.log(err);
outputHTML5(500,response,'Y\'a eu un souci',"Oups!");
});
}
});
} else {
outputHTML5(404,response,'Y\'a rien ici',"Oups");
}
});
server.listen(80);