2018-10-29 17:36:33 +00:00
|
|
|
declare var require:any;
|
|
|
|
|
|
|
|
const express = require('express');
|
|
|
|
const app = express();
|
|
|
|
app.use(express.json());
|
|
|
|
app.use(express.urlencoded());
|
|
|
|
const port:number = 3000;
|
|
|
|
|
|
|
|
const validator = require('./google_validation.js').validator;
|
|
|
|
|
|
|
|
const crearUsuario = (con:any, data:object) => {
|
|
|
|
return new Promise((resolve, reject) => {
|
2018-10-30 15:20:02 +00:00
|
|
|
con.query (`INSERT INTO usuarios (nombre, email, img, carritoActual, GOOGLE_ID)\
|
2018-10-29 17:36:33 +00:00
|
|
|
VALUES ( '${(data as any)["nombreUsuario"]}', '${(data as any)["emailUsuario"]}',
|
2018-10-30 15:20:02 +00:00
|
|
|
'${(data as any)["imagenUsuario"]}', '{}', '${(data as any)["googleID"]}')`,
|
2018-10-29 17:36:33 +00:00
|
|
|
(err:any, res:string) => {
|
|
|
|
if (err) {
|
|
|
|
reject("Error al ejecutar query SQL (start.ts fila 18))...\n" + err);
|
|
|
|
}
|
|
|
|
resolve("Exito.");
|
|
|
|
}
|
|
|
|
);
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2018-10-30 15:20:02 +00:00
|
|
|
const revisarUsuarioG = (usuario:object) => {
|
2018-10-29 17:36:33 +00:00
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
const mysql = require('mysql');
|
|
|
|
|
|
|
|
const con = mysql.createConnection({
|
|
|
|
host: '35.193.16.64',
|
|
|
|
user: 'Araozu',
|
|
|
|
password: 'xsakah4b',
|
|
|
|
database: 'Usuarios_DB'
|
|
|
|
});
|
|
|
|
|
|
|
|
con.connect( (err:any) => {
|
|
|
|
if (err) {
|
|
|
|
reject("Error al conectarse a la BBDD.");
|
|
|
|
}
|
|
|
|
|
|
|
|
const nombreUsuario:string = (usuario as any)["name"];
|
|
|
|
const emailUsuario:string = (usuario as any)["email"];
|
|
|
|
const imagenUsuario:string = (usuario as any)["picture"];
|
2018-10-30 15:20:02 +00:00
|
|
|
const googleID:number = (usuario as any)["sub"];
|
2018-10-29 17:36:33 +00:00
|
|
|
|
2018-10-30 15:20:02 +00:00
|
|
|
con.query (`SELECT nombre, email, img, carritoActual, USER_ID FROM usuarios WHERE GOOGLE_ID='${googleID}'`,
|
2018-10-29 17:36:33 +00:00
|
|
|
(err:any, response:any) => {
|
|
|
|
if (err) {
|
|
|
|
reject("Error al ejecutar query SQL");
|
|
|
|
}
|
|
|
|
const respuestaBD:string = JSON.stringify(response);
|
|
|
|
if (respuestaBD === '[]') {
|
2018-10-30 15:20:02 +00:00
|
|
|
crearUsuario(con, {nombreUsuario, emailUsuario, imagenUsuario, googleID})
|
2018-10-29 17:36:33 +00:00
|
|
|
.then( () => {
|
|
|
|
resolve(`{ "nombre": "${nombreUsuario}", "email": "${emailUsuario}", "img": "${imagenUsuario}",
|
2018-10-30 15:20:02 +00:00
|
|
|
"carrito": {}`);
|
2018-10-29 17:36:33 +00:00
|
|
|
})
|
|
|
|
.catch((msg:string) => {
|
|
|
|
reject("Error al crear el usuario...\n" + msg);
|
|
|
|
})
|
|
|
|
} else {
|
2018-10-30 15:20:02 +00:00
|
|
|
console.log(`Respuesta servidor:\n${respuestaBD}`);
|
|
|
|
resolve(JSON.stringify(response[0]));
|
2018-10-29 17:36:33 +00:00
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2018-10-30 15:20:02 +00:00
|
|
|
app.post('/log-inG',(req:any, res:any) => {
|
2018-10-29 17:36:33 +00:00
|
|
|
res.header('Access-Control-Allow-Origin', 'http://localhost:8080');
|
|
|
|
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
|
|
|
|
res.header('Access-Control-Allow-Headers', 'Content-Type');
|
|
|
|
|
|
|
|
const token:string = req.body.idtoken;
|
|
|
|
|
|
|
|
validator(token)
|
2018-10-30 15:20:02 +00:00
|
|
|
.then( (usuario:object) => {
|
|
|
|
revisarUsuarioG(usuario)
|
2018-10-29 17:36:33 +00:00
|
|
|
.then(response => res.send(response.toString()))
|
|
|
|
.catch(err => res.send(err))
|
2018-10-30 15:20:02 +00:00
|
|
|
|
|
|
|
})
|
2018-10-29 17:36:33 +00:00
|
|
|
.catch(console.error);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
app.listen(port, () => {
|
|
|
|
console.log(`Estoy escuchando el puerto ${port} we v:`);
|
|
|
|
});
|