simpleton-state-manager
Version:
A Simple State Manager for WebApp UI
69 lines (55 loc) • 1.59 kB
JavaScript
const router = require('express').Router();
const fs = require('fs');
const users = require('./data/users.json');
router.post('/save', (req, res) => {
let newUserRec = req.body.user.user;
console.log('POST save:', JSON.stringify(newUserRec));
replaceUserRec(newUserRec.user);
let userRec = getUserRec(newUserRec.user.name);
res.json({"user": userRec});
/* save to file */
});
router.get('/login', (req, res, next) => {
let userParam = req.query.username;
let pwParam = req.query.password;
let userRec = authenticateUser(userParam);
if(userRec != null) {
res.json({"name": userRec.name});
}
else {
res.status(500);
res.json({"error": `User ${userParam} doe not exist`});
}
});
router.get('/todos', (req, res, next) => {
let userParam = req.query.username;
let userRec = authenticateUser(userParam);
if(userRec != null) {
res.json({"user": userRec});
}
else {
res.status(500);
res.json({"error": `User ${userParam} doe not exist`});
}
});
function replaceUserRec(newUserRec) {
for(let i = 0; i < users.length; i++) {
let userRec = users[i];
if(userRec.name == newUserRec.name) {
users[i].portfolio = newUserRec.portfolio;
}
}
}
function getUserRec(user) {
for(let i = 0; i < users.length; i++) {
let userRec = users[i];
if(userRec.name.toLowerCase() == user.toLowerCase()) {
return userRec;
}
}
return null;
}
function authenticateUser(userParam) {
return getUserRec(userParam);
}
module.exports = router;