Skip to content
Snippets Groups Projects
Commit 5e601955 authored by Fin Wallis's avatar Fin Wallis
Browse files

Merge branch 'master' into 'main'

Master

See merge request !5
parents d0684bb0 dd9b854f
No related branches found
No related tags found
1 merge request!5Master
const {check, validationResult } = require('express-validator');
const {body, validationResult } = require('express-validator');
exports.signupValidator = [
check('firstName').not().isEmpty().trim().withMessage("First name is required"),
check('lastName').not().isEmpty().trim().withMessage("Last name is required"),
check('email').isEmail().normalizeEmail().withMessage("Last name is required"),
check('password').isLength({min: 6}).withMessage("Password msut be at least 6 characters long"),
body('firstName').not().isEmpty().trim().withMessage("First name is required"),
body('lastName').not().isEmpty().trim().withMessage("Last name is required"),
body('email').isEmail().normalizeEmail().withMessage("Email is required"),
body('password').isLength({min: 6}).withMessage("Password must be at least 6 characters long"),
]
// module.exports = signupValidator
exports.validatorResult = (req, res, next) => {
const result = validationResult(req);
const hasErrors = !result.isEmpty();
if (hasErrors) {
const error = result.array()[0].msg
console.log('Has errors:', hasErrors)
console.log("result", result)
return res.status(400).json({
errorMessage: error
})
}
next();
}
// module.exports = validationResult
\ No newline at end of file
......@@ -2,7 +2,7 @@
// export vs module exports (which works) - fix refactor later
export const test = (req, res) => {
// res.send(req.body)
console.log("inside controller")
console.log("inside controller", req.body.firstName)
};
module.exports = test
\ No newline at end of file
......@@ -55,4 +55,5 @@ export const EventSchema = new Schema({
type: Date,
default: Date.now
}
})
\ No newline at end of file
})
import mongoose from 'mongoose';
const Schema = mongoose.Schema
export const UserSchema = new Schema({
firstName: {
type: String,
required: true,
trim: true
},
lastName: {
type: String,
required: true,
trim: true
},
email: {
type: String,
required: true,
trim: true
},
password: {
type: String,
required: true,
trim: true
}
}, { timestamps: true })
const User = mongoose.model('User', UserSchema);
module.exports = User
\ No newline at end of file
import {signupValidator, validatorResult} from "../middleware/validator";
import test from "../controllers/authControllers";
const { body, validationResult, check } = require('express-validator');
const authRoutes = (app) => {
app.route('/api/auth/signup', signupValidator, validatorResult).post(test)
};
app.route('/api/auth/signup',).post(signupValidator, validatorResult, test)
}
export default authRoutes;
......@@ -35,15 +35,18 @@ const SignUpForm = () => {
setFormData({
...formData, errorMsg: 'All fields are required',
})
} else if (!isEmail(formData.email)) {
}
else if (!isEmail(formData.email)) {
setFormData({
...formData, errorMsg: 'Invalid email',
})
} else if (!equals(formData.password, formData.confirmPassword)) {
}
else if (!equals(formData.password, formData.confirmPassword)) {
setFormData({
...formData, errorMsg: 'Passwords do not match',
})
} else {
const {firstName, lastName, email, password} = formData
const data = {firstName, lastName, email, password}
......@@ -63,6 +66,7 @@ const SignUpForm = () => {
.catch((err) => {
console.log(err)
})
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment