fcsc_ipi_backend/app/controllers/user.controller.js

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