var express = require('express') var router = express.Router() const User = require('@models/User') const Auth = require('@helpers/Auth') const cs = require('@helpers/CryptoString') // middleware that is specific to this router router.use(function timeLog (req, res, next) { // console.log('Time: ', Date.now()) next() }) // Login User router.post('/login', function (req, res) { User.login(req.body.username, req.body.password, req.body.authToken) .then( returnData => { res.send(returnData) }) }) // Logout User router.post('/logout', function (req, res) { User.logout(req.headers.sessionId) .then( returnData => { res.send(true) }) }) // Register User router.post('/register', function (req, res) { User.register(req.body.username, req.body.password) .then( returnData => { res.send(returnData) }) .catch(e => { res.send(false) }) }) // fetch counts of users notes router.post('/totals', function (req, res) { User.getCounts(req.headers.userId) .then( countsObject => res.send( countsObject )) }) // // Two Factor Auth Setup // router.post('/twofactorsetup', function (req, res) { //Send QR code to user for 2FA setup Auth.generateTwoFactorSecretKey(req.headers.userId, req.body.password) .then( ({ qrCode }) => { res.send( qrCode ) }) }) router.post('/verifytwofactorsetuptoken', function (req, res) { //Verify Users QR code with token Auth.setTwoFactorEnabled(req.headers.userId, req.body.password, req.body.token, true) .then( ( results ) => { res.send( results ) }) }) router.post('/validatetwofactortoken', function (req, res) { //Verify Users QR code with token Auth.validateTwoFactorToken(req.headers.userId, req.body.password, req.body.token) .then( ( results ) => { res.send( results ) }) }) module.exports = router