From 2f1174c21b58cdec4b1971da8937a8cec85876f8 Mon Sep 17 00:00:00 2001 From: sorrelbri Date: Fri, 26 Jun 2020 17:35:13 -0700 Subject: [PATCH] stub guest creation on server --- packages/server/controllers/auth.js | 69 ++++++++++++++++++----------- packages/server/routes/auth.js | 22 ++++++--- 2 files changed, 58 insertions(+), 33 deletions(-) diff --git a/packages/server/controllers/auth.js b/packages/server/controllers/auth.js index 77091ba..216b77e 100644 --- a/packages/server/controllers/auth.js +++ b/packages/server/controllers/auth.js @@ -1,15 +1,15 @@ -const { validationResult } = require('express-validator'); +const { validationResult } = require("express-validator"); -const userQueries = require('../data/queries/user'); -const { hashPassword, compareHash } = require('../services/bcrypt'); -const signToken = require('../services/signToken'); +const userQueries = require("../data/queries/user"); +const { hashPassword, compareHash } = require("../services/bcrypt"); +const signToken = require("../services/signToken"); const checkValidationErrors = (req, res) => { const errors = validationResult(req); if (!errors.isEmpty()) { return res.status(422).json({ errors: errors.array() }); } -} +}; const signup = async (req, res, next) => { checkValidationErrors(req, res); @@ -20,51 +20,66 @@ const signup = async (req, res, next) => { const hashedPassword = await hashPassword(user.password); const secureUser = { ...user, password: hashedPassword }; if (existingUser.length) { - return res.status(409).json({errors: [{auth: 'User already exists!'}]}) + return res + .status(409) + .json({ errors: [{ auth: "User already exists!" }] }); } const newUser = await userQueries.insertUser(secureUser); - signToken(res, newUser) - res.status(201).json({...newUser}); - } - - catch (err) { + signToken(res, newUser); + res.status(201).json({ ...newUser }); + } catch (err) { res.status(500).json(err); } -} +}; const login = async (req, res, next) => { checkValidationErrors(req, res); const user = req.body; - + try { const queryResults = await userQueries.findUserByNameOrEmail(user); const savedUser = queryResults[0] || null; - + if (!savedUser) { - return res.status(401).send({errors: 'bad credentials'}); + return res.status(401).send({ errors: "bad credentials" }); } - + const hashedPassword = savedUser.password; const passwordMatch = await compareHash(user.password, hashedPassword); if (!passwordMatch) { - return res.status(401).send({errors: 'bad credentials'}); + return res.status(401).send({ errors: "bad credentials" }); } - - const authorizedUser = {...savedUser}; + + const authorizedUser = { ...savedUser }; delete authorizedUser.password; - + signToken(res, authorizedUser); - res.send({...authorizedUser}).status(200); + res.send({ ...authorizedUser }).status(200); + } catch (e) { + res.status(500).send({ errors: e }); } - - catch (err) { - res.status(500).send({errors: err}); +}; + +const guest = async (req, res, next) => { + try { + // username generator returns `Guest-${num}` + const username = "guest"; + // generateGuestUser(); + const email = null; + // id generator returns ` + const id = null; + const user = { username, email, id }; + signToken(res, user); + res.send(user); + } catch (e) { + res.status(500).send({ errors: e }); } -} +}; module.exports = { signup, - login -} \ No newline at end of file + login, + guest, +}; diff --git a/packages/server/routes/auth.js b/packages/server/routes/auth.js index dfa96f9..6f1f2fb 100644 --- a/packages/server/routes/auth.js +++ b/packages/server/routes/auth.js @@ -1,10 +1,20 @@ -const express = require('express'); +const express = require("express"); const router = express.Router(); -const app = require('../server'); -const authController = require('../controllers/auth'); -const { signupValidationRules, loginValidationRules, validate } = require('../middleware/userValidator'); +const app = require("../server"); +const authController = require("../controllers/auth"); +const { + signupValidationRules, + loginValidationRules, + validate, +} = require("../middleware/userValidator"); -router.post('/signup', signupValidationRules(), validate, authController.signup); -router.post('/login', loginValidationRules(), validate, authController.login); +router.post( + "/signup", + signupValidationRules(), + validate, + authController.signup +); +router.post("/login", loginValidationRules(), validate, authController.login); +router.post("/guest", authController.guest); module.exports = router;