fcsc_ipi_backend/app/controllers/establishment_user.controller.js

91 lines
2.6 KiB
JavaScript

const db = require("../models");
const bcrypt = require("bcryptjs");
const EstablishmentUser = db.establishment_user;
// Create User
exports.createUser = async (req, res) => {
try {
const { establishment_id, name, email, password } = req.body;
const hashed = await bcrypt.hash(password, 10);
const user = await EstablishmentUser.create({
establishment_id,
name,
email,
password: hashed,
});
res.status(201).send({'status':"success",'message':"Creation successful",'data': user });
} catch (err) {
res.status(500).send({'status':"failed",'message':err.message });
}
};
// Get all users
exports.getAllUsers = async (req, res) => {
try {
const users = await EstablishmentUser.findAll({ where:{ establishment_id : req.query.establishment_id} });
res.status(200).send({'status':"success",'message':"Fetched successfully",'data': users });
} catch (err) {
res.status(500).send({'status':"failed",'message':err.message });
}
};
// Get user by id
exports.getUserById = async (req, res) => {
try {
const user = await EstablishmentUser.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) {
res.status(500).send({'status':"failed",'message':err.message });
}
};
// Update user
exports.updateUser = async (req, res) => {
try {
const { name, email, password, is_active } = req.body;
const data = {};
if (name) data.name = name;
if (email) data.email = email;
if (is_active !== undefined) data.is_active = is_active;
if (password) data.password = await bcrypt.hash(password, 10);
const [updated] = await EstablishmentUser.update(data, {
where: { id: req.params.id },
});
if (!updated) res.status(404).send({'status':"failed",'message':"Record not found",'data': "" });
res.status(200).send({'status':"success",'message':"Record updated successfully",'data': "" });
} catch (err) {
res.status(500).send({'status':"failed",'message':err.message });
}
};
// Delete user
exports.deleteUser = async (req, res) => {
try {
const deleted = await EstablishmentUser.destroy({ where: { id: req.params.id } });
if (!deleted) res.status(404).send({'status':"failed",'message':"Record not found",'data': "" });
res.status(200).send({'status':"success",'message':"Record deleted successfully",'data': "" });
} catch (err) {
res.status(500).send({'status':"failed",'message':err.message });
}
};