Skip to content

Commit 12954ef

Browse files
refactor out static function throwError to dry code
1 parent e1e1cff commit 12954ef

4 files changed

Lines changed: 19 additions & 15 deletions

File tree

src/middleware/index.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
const auth = require('basic-auth');
22
const User = require('../models/user');
3+
import Utils from '../utils';
34

45

56
export function authorizeUser(req, res, next) {
67
let user = auth(req);
78
if(!user || !user.name || !user.pass){
8-
const err = new Error("Access Denied: Please supply login credentials!");
9-
err.status = 401;
10-
return next(err);
9+
return Utils.throwError(401, "Access Denied: Please supply login credentials!", next);
1110
}
1211
User.authenticate(user.name, user.pass, (error, user) => {
1312
if(error || !user){
14-
const err = new Error("Access Denied: Wrong email or password");
15-
err.status = 401;
16-
return next(err);
13+
return Utils.throwError(401, "Access Denied: Wrong email or password", next);
1714
}
1815
req.session.userId = user._id;
1916
return next();

src/models/user.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ UserSchema.statics.authenticate = function (email, password, callback) {
4343
});
4444
};
4545

46-
4746
/*
4847
May need some logic here later to check if email in correct format.
4948
*/

src/routes/user.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,25 @@ const express = require('express');
22
const router = express.Router();
33
const User = require('../models/user');
44
import {authorizeUser} from "../middleware/index";
5+
import Utils from '../utils';
56

67
/* GET home page. */
7-
router.get('/', authorizeUser, (req, res, next) => {
8-
console.log(req.session.userId);
8+
router.get('/', authorizeUser, (req, res) => {
9+
// if(!req.session || !req.session.userId){
10+
// Utils.throwError()
11+
// }
12+
// User.findById(req.session.userId)
913
let status = 200;
1014
res.status(status).json({success: true, message: "User Successfully retrieved", status: status});
1115
});
1216

1317

1418
router.post('/', (req, res, next) => {
1519
if(!req.body.emailAddress || !req.body.fullName || !req.body.password){
16-
const err = new Error("Missing Parameters");
17-
err.status = 422;
18-
return next(err);
20+
return Utils.throwError(422, "Missing Parameters", next);
1921
}
2022
if(!User.validEmail(req.body.emailAddress)){
21-
const err = new Error("Malformed Email Supplied");
22-
err.status = 400;
23-
return next(err);
23+
return Utils.throwError(400, "Malformed Email Supplied", next);
2424
}
2525
User.userExist(req.body.emailAddress, (err) => {
2626
if(err){

src/utils.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export default class Utils {
2+
constructor(){}
3+
static throwError(status, msg, next){
4+
const err = new Error(msg);
5+
err.status = status;
6+
return next(err);
7+
}
8+
}

0 commit comments

Comments
 (0)