express-api-cli
Version:
Cli tool for generating an express project. Instead of wasting extra time creating your project structure, start building right away
98 lines (92 loc) • 2.36 kB
JavaScript
import HttpStatus from 'http-status-codes';
import * as UserService from '../services/user.service';
/**
* Controller to get all users available
* @param {object} req - request object
* @param {object} res - response object
* @param {Function} next
*/
export const getAllUsers = async (req, res, next) => {
try {
const data = await UserService.getAllUsers();
res.status(HttpStatus.OK).json({
code: HttpStatus.OK,
data: data,
message: 'All users fetched successfully'
});
} catch (error) {
next(error);
}
};
/**
* Controller to get a single user
* @param {object} req - request object
* @param {object} res - response object
* @param {Function} next
*/
export const getUser = async (req, res, next) => {
try {
const data = await UserService.getUser(req.params._id);
res.status(HttpStatus.OK).json({
code: HttpStatus.OK,
data: data,
message: 'User fetched successfully'
});
} catch (error) {
next(error);
}
};
/**
* Controller to create a new user
* @param {object} req - request object
* @param {object} res - response object
* @param {Function} next
*/
export const newUser = async (req, res, next) => {
try {
const data = await UserService.newUser(req.body);
res.status(HttpStatus.CREATED).json({
code: HttpStatus.CREATED,
data: data,
message: 'User created successfully'
});
} catch (error) {
next(error);
}
};
/**
* Controller to update a user
* @param {object} req - request object
* @param {object} res - response object
* @param {Function} next
*/
export const updateUser = async (req, res, next) => {
try {
const data = await UserService.updateUser(req.params._id, req.body);
res.status(HttpStatus.ACCEPTED).json({
code: HttpStatus.ACCEPTED,
data: data,
message: 'User updated successfully'
});
} catch (error) {
next(error);
}
};
/**
* Controller to delete a user
* @param {object} req - request object
* @param {object} res - response object
* @param {Function} next
*/
export const deleteUser = async (req, res, next) => {
try {
await UserService.deleteUser(req.params._id);
res.status(HttpStatus.OK).json({
code: HttpStatus.OK,
data: [],
message: 'User deleted successfully'
});
} catch (error) {
next(error);
}
};