54 lines
1.1 KiB
TypeScript
54 lines
1.1 KiB
TypeScript
import HttpStatusCodes from '@src/constants/HttpStatusCodes';
|
|
|
|
import UserService from '@src/services/UserService';
|
|
import { IUser } from '@src/models/User';
|
|
import { IReq, IRes } from './types/express/misc';
|
|
|
|
|
|
// **** Functions **** //
|
|
|
|
/**
|
|
* Get all users.
|
|
*/
|
|
async function getAll(_: IReq, res: IRes) {
|
|
const users = await UserService.getAll();
|
|
return res.status(HttpStatusCodes.OK).json({ users });
|
|
}
|
|
|
|
/**
|
|
* Add one user.
|
|
*/
|
|
async function add(req: IReq<{user: IUser}>, res: IRes) {
|
|
const { user } = req.body;
|
|
await UserService.addOne(user);
|
|
return res.status(HttpStatusCodes.CREATED).end();
|
|
}
|
|
|
|
/**
|
|
* Update one user.
|
|
*/
|
|
async function update(req: IReq<{user: IUser}>, res: IRes) {
|
|
const { user } = req.body;
|
|
await UserService.updateOne(user);
|
|
return res.status(HttpStatusCodes.OK).end();
|
|
}
|
|
|
|
/**
|
|
* Delete one user.
|
|
*/
|
|
async function delete_(req: IReq, res: IRes) {
|
|
const id = +req.params.id;
|
|
await UserService.delete(id);
|
|
return res.status(HttpStatusCodes.OK).end();
|
|
}
|
|
|
|
|
|
// **** Export default **** //
|
|
|
|
export default {
|
|
getAll,
|
|
add,
|
|
update,
|
|
delete: delete_,
|
|
} as const;
|