const express = require('express'); const router = express.Router(); var { User } = require('../models/user'); const _ = require('lodash'); var { authenticate } = require('../middleware/authenticate'); // POST /users router.post('/', (req, res) => { console.log("POST /users"); var body = _.pick(req.body, ['email', 'password', 'username', 'idapp', 'keyappid', 'lang']); var user = new User(body); // console.log("LANG PASSATO = " + user.lang); // console.log("IDAPP = " + user.idapp); user.linkreg = reg.getlinkregByEmail(body.email, body.username); user.verified_email = false; user.save().then(() => { User.findByUsername(user.username) .then((usertrovato) => { //console.log("USERNAME : " + user.username); //console.log("TROVATO USERNAME ? " + usertrovato); if (usertrovato !== null) { //console.log("Non esiste ancora"); // Non esiste ancora, allora genero il TOKEN ! return user.generateAuthToken(); } else { //console.log("Esiste già! Quindi non creo lo user."); // Esiste già! Quindi non creo lo user. res.status(11100).send(); return 0; } }).then((token) => { // passo il token in x-auth //console.log("USER"); //console.log(user); console.log("TOKEN: "); console.log(token); res.header('x-auth', token).send(user); console.log("LINKREG = " + user.linkreg); // Invia un'email all'utente sendemail.sendEmail_Registration(getlang(res), user.email, user.username, user.idapp, user.linkreg); }); }).catch((e) => { res.status(400).send(e); }) }); router.get('/:username', (req, res) => { var username = req.params.username; User.findByUsername(username).then((user) => { if (!user) { return res.status(404).send(); } res.status(200).send(); }).catch((e) => { res.status(400).send(); }); }); router.post('/login', (req, res) => { var body = _.pick(req.body, ['username', 'password', 'idapp', 'keyappid', 'lang']); var user = new User(body); console.log("user: " + user.username + " pwd = " + user.password); if (body.keyappid !== process.env.KEY_APP_ID) // Se non faccio la richesa con la IDAPP giusta, allora esco! return res.status(400).send(); User.findByCredentials(user.username, user.password) .then((user) => { console.log("CREDENZIALI ! "); if (!user) { console.log("NOT FOUND !"); res.status(404).send({ code: server_constants.RIS_CODE_LOGIN_ERR }); } else { return user.generateAuthToken().then((token) => { var usertosend = User(); usertosend.username = user.username; usertosend.email = user.email; usertosend.userId = user._id.toHexString(); usertosend.verified_email = user.verified_email; // console.log("user.verified_email:" + user.verified_email); // console.log("usertosend.userId", usertosend.userId); // console.log("usertosend:"); // console.log(usertosend); res.header('x-auth', token).send(usertosend); // console.log("TROVATOOO!"); }); } }).catch((e) => { console.log("ERR: " + e); res.status(400).send({ code: server_constants.RIS_CODE_LOGIN_ERR_GENERIC }); }); }); router.delete('/me/token', authenticate, (req, res) => { console.log("TOKENREM = " + req.token); req.user.removeToken(req.token).then(() => { res.status(200).send(); }, () => { res.status(400).send(); }); }); module.exports = router;