95 lines
2.6 KiB
JavaScript
95 lines
2.6 KiB
JavaScript
const db = require("../models");
|
|
const bcrypt = require("bcryptjs");
|
|
const jwt = require("jsonwebtoken");
|
|
const logger = require("../services/logger");
|
|
require("dotenv").config();
|
|
|
|
const User = db.user;
|
|
|
|
// Create User
|
|
exports.createUser = async (req, res) => {
|
|
try {
|
|
|
|
const { name, email, password } = req.body;
|
|
const hashedPassword = await bcrypt.hash(password, 10);
|
|
|
|
const user = await User.create({ name, email, password: hashedPassword });
|
|
|
|
logger.info(`User created: ${email}`);
|
|
|
|
res.status(201).send({'status':"success",'message':"created successfully",'data': user });
|
|
|
|
} catch (err) {
|
|
logger.error(err.message);
|
|
res.status(500).send({'status':"failed",'message':err.message });
|
|
}
|
|
};
|
|
|
|
// Get All Users
|
|
exports.getAllUsers = async (req, res) => {
|
|
try {
|
|
|
|
const users = await User.findAll();
|
|
|
|
res.status(200).send({'status':"success",'message':"Fetched successfully",'data': users });
|
|
|
|
} catch (err) {
|
|
logger.error(err.message);
|
|
res.status(500).send({'status':"failed",'message':err.message });
|
|
}
|
|
};
|
|
|
|
// Get User by ID
|
|
exports.getUserById = async (req, res) => {
|
|
try {
|
|
|
|
const user = await User.findByPk(req.params.id);
|
|
|
|
if (!user) res.status(404).send({'status':"failed",'message':"Record Not found",'data': "" });
|
|
|
|
res.status(200).send({'status':"success",'message':"Fetched successfully",'data': user });
|
|
|
|
} catch (err) {
|
|
logger.error(err.message);
|
|
res.status(500).send({'status':"failed",'message':err.message });
|
|
}
|
|
};
|
|
|
|
// Update User
|
|
exports.updateUser = async (req, res) => {
|
|
try {
|
|
|
|
const { name, email } = req.body;
|
|
const [updated] = await User.update({ name, email }, { where: { id: req.params.id } });
|
|
|
|
if (updated) {
|
|
const updatedUser = await User.findByPk(req.params.id);
|
|
res.status(200).send({'status':"success",'message':"Updated successfully",'data': updatedUser });
|
|
} else {
|
|
res.status(404).send({'status':"failed",'message':"Record Not found",'data': "" });
|
|
}
|
|
|
|
} catch (err) {
|
|
logger.error(err.message);
|
|
res.status(500).send({'status':"failed",'message':err.message });
|
|
}
|
|
};
|
|
|
|
// Delete User
|
|
exports.deleteUser = async (req, res) => {
|
|
try {
|
|
|
|
const deleted = await User.destroy({ where: { id: req.params.id } });
|
|
|
|
if (deleted) {
|
|
res.status(200).send({'status':"success",'message':"Deleted successfully",'data': "" });
|
|
} else {
|
|
res.status(404).send({'status':"failed",'message':"Record Not found",'data': "" });
|
|
}
|
|
|
|
} catch (err) {
|
|
logger.error(err.message);
|
|
res.status(500).send({'status':"failed",'message':err.message });
|
|
}
|
|
};
|