110 lines
3.0 KiB
JavaScript
Executable File
110 lines
3.0 KiB
JavaScript
Executable File
var Sequelize = require('sequelize');
|
|
const nodemailer = require('nodemailer');
|
|
const { body, validationResult } = require('express-validator');
|
|
const memberServices = require("../services").member;
|
|
|
|
module.exports = {
|
|
validate(method) {
|
|
switch (method) {
|
|
case 'register':
|
|
{
|
|
return [
|
|
body('username', 'userName doesn\'t exists').exists(),
|
|
body('email', 'Invalid email').exists().isEmail(),
|
|
body('phone').optional().isInt()
|
|
]
|
|
}
|
|
}
|
|
},
|
|
register(req, res) {
|
|
const errors = validationResult(req);
|
|
if (!errors.isEmpty()) {
|
|
console.log(errors)
|
|
return res.status(400).json({ errors: errors.array() });
|
|
}
|
|
return memberServices.create(req)
|
|
.then(member => {
|
|
res.status(200).send("Register succesfully")
|
|
})
|
|
.catch(error => {
|
|
res.status(400).send(error.errors)
|
|
});
|
|
},
|
|
|
|
login(req, res) {
|
|
memberServices.login(req)
|
|
.then(accessToken => res.status(200).send(accessToken))
|
|
.catch(error => res.status(400).send(error.errors));
|
|
},
|
|
|
|
profile(req, res) {
|
|
memberServices.getProfile(req)
|
|
.then(member => res.status(200).send(member))
|
|
.catch(error => res.status(400).send(error.errors));
|
|
},
|
|
|
|
forgotPassword(req, res) {
|
|
memberServices.forgotPassword(req)
|
|
.then(result => {
|
|
console.log(result)
|
|
})
|
|
.catch(error => res.status(400).send(error.errors));
|
|
},
|
|
|
|
resetPassword(req, res) {
|
|
const mode = req.body.mode;
|
|
switch (mode) {
|
|
case memberServices.RESET_START:
|
|
memberServices.resetPassword(req)
|
|
.then(result => {
|
|
res.status(200).send(result)
|
|
})
|
|
.catch(error => res.status(400).send(error.errors));
|
|
break;
|
|
case memberServices.RESET_CONFIRM:
|
|
memberServices.confirmResetPassword(req)
|
|
.then(result => {
|
|
res.status(200).send(result)
|
|
})
|
|
.catch(error => res.status(400).send(error.errors));
|
|
break;
|
|
|
|
case memberServices.RESET_COMPLETE:
|
|
memberServices.completeResetPassword(req)
|
|
.then(result => {
|
|
res.status(200).send(result)
|
|
})
|
|
.catch(error => res.status(400).send(error.errors));
|
|
break;
|
|
|
|
default:
|
|
res.status(400).send("Invalid mode")
|
|
}
|
|
|
|
},
|
|
|
|
updateProfile(req, res) {
|
|
const username = req.user.username;
|
|
const { firstname, lastname, phone } = req.body;
|
|
const data = {
|
|
firstname: firstname,
|
|
lastname: lastname,
|
|
phone: phone
|
|
}
|
|
return memberServices.updateProfile(username, data)
|
|
.then(([rowsUpdate, [updatedRow]]) => res.status(200).send("Update profile successfully"))
|
|
.catch(error => res.status(400).send(error));
|
|
},
|
|
|
|
changePassword(req, res) {
|
|
memberServices
|
|
.updatePassword(req)
|
|
.then(([rowsUpdate, [updatedRow]]) => res.status(200).send("Update password successfully"))
|
|
.catch(error => res.status(400).send(error));
|
|
},
|
|
|
|
deactivate(req, res) {
|
|
|
|
}
|
|
|
|
}; |