- cleaned some code.

- routing offline
- pushNotification
This commit is contained in:
Paolo Arena
2019-02-12 12:06:25 +01:00
parent d24b232a2d
commit 71132b9a57
8 changed files with 219 additions and 92 deletions

View File

@@ -15,6 +15,19 @@ var reg = require('../reg/registration');
var { authenticate } = require('../middleware/authenticate');
var mongoose = require('mongoose');
const Subscription = mongoose.model('subscribers');
function existSubScribe(userId, access) {
return Subscription.findOne({ userId, access })
.then(itemsub => {
return itemsub
})
.catch(err => {
return null
})
}
// POST /users
router.post('/', (req, res) => {
@@ -90,29 +103,72 @@ router.post('/login', (req, res) => {
if (!user) {
tools.mylogshow("NOT FOUND !");
res.status(404).send({ code: server_constants.RIS_CODE_LOGIN_ERR });
} else {
return user.generateAuthToken(req).then((token) => {
var usertosend = User();
usertosend.username = user.username;
usertosend.email = user.email;
usertosend.userId = user._id.toHexString();
usertosend.verified_email = user.verified_email;
}
})
.then(user => {
let mytoken = '';
return user.generateAuthToken(req).then((token) => {
var usertosend = User();
usertosend.username = user.username;
usertosend.email = user.email;
usertosend.userId = user._id.toHexString();
usertosend.verified_email = user.verified_email;
// tools.mylog("user.verified_email:" + user.verified_email);
tools.mylog("usertosend.userId", usertosend.userId);
// tools.mylog("user.verified_email:" + user.verified_email);
tools.mylog("usertosend.userId", usertosend.userId);
// tools.mylog("usertosend:");
// tools.mylog(usertosend);
res.header('x-auth', token).send({usertosend, code: server_constants.RIS_CODE_OK});
// tools.mylog("usertosend:");
// tools.mylog(usertosend);
return usertosend
})
.then((usertosend) => {
const useragent = req.get('User-Agent');
const access = 'auth ' + useragent;
// if (usertosend.tokens.length > 0)
// access = usertosend.tokens[usertosend.tokens.length - 1].access;
return existSubScribe(usertosend.userId, access)
.then(subscribe => {
if (subscribe === null) {
// Doesn't exist, so save sub passed in INPUT
let subscriptionModel = new Subscription(req.body.subs);
subscriptionModel.userId = usertosend._id;
subscriptionModel.access = access;
return subscriptionModel.save((err, subscription) => {
if (err) {
console.error(`Error occurred while saving subscription. Err: ${err}`);
res.status(500).json({
error: 'Technical error occurred'
});
} else {
// Send 201 - resource created
// res.status(201).json({ data: 'Subscription saved.' });
// res.send({ data: 'Subscription saved.' });
tools.sendBackNotif(subscription, req.body.options)
}
return { usertosend }
});
} else {
return { usertosend }
}
});
})
.then((usertosend) => {
console.log('res', mytoken, usertosend);
res.header('x-auth', mytoken).send({ usertosend, code: server_constants.RIS_CODE_OK });
// tools.mylog("TROVATOOO!");
tools.mylog('FINE LOGIN')
});
}
}).catch((e) => {
tools.mylog("ERRORE IN LOGIN: " + e);
res.status(400).send({ code: server_constants.RIS_CODE_LOGIN_ERR_GENERIC });
});
})
.catch((e) => {
tools.mylog("ERRORE IN LOGIN: " + e);
res.status(400).send({ code: server_constants.RIS_CODE_LOGIN_ERR_GENERIC });
});
});
router.delete('/me/token', authenticate, (req, res) => {