Files
FloatApi/src/server/controllers/member.js
T
2022-03-15 16:53:48 +07:00

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) {
}
};