backend: generating guests

This commit is contained in:
muerwre 2018-11-29 16:18:02 +07:00
parent b6bd300e1b
commit 5025a43dbd
16 changed files with 1380 additions and 167 deletions

View file

@ -0,0 +1,32 @@
const { genRandomSequence } = require('../../utils/gen');
const { UserModel } = require('../../config/db');
const generateGuestToken = () => {
const id = `guest:${genRandomSequence(32)}`;
return UserModel.find({ id }).then(user => {
if (user.length) return generateGuestToken();
return id;
});
};
const generateUser = id => {
const token = `seq:${genRandomSequence(32)}`;
const role = 'guest';
return { id, token, role };
};
const saveUser = user => {
const model = new UserModel({ ...user });
return model.save();
};
module.exports = (req, res) => (
generateGuestToken()
.then(generateUser)
.then(saveUser)
.then(result => res.send({ success: 'true', type: 'guest', token: result }))
);

View file

@ -0,0 +1,9 @@
const { UserModel } = require('../../config/db');
module.exports = (req, res) => UserModel.find((err, articles) => {
if (!err) return res.send(articles);
res.statusCode = 500;
return res.send({ error: 'Server error' });
});