UNPKG

express-generator-typescript

Version:

Generate new Express applications similar to express-generate which but sets it up to use TypeScript instead

65 lines (55 loc) 1.74 kB
import HttpStatusCodes from '@src/common/constants/HttpStatusCodes'; import { RouteError } from '@src/common/utils/route-errors'; import { IUser } from '@src/models/User.model'; import UserRepo from '@src/repos/UserRepo'; /****************************************************************************** Constants ******************************************************************************/ const Errors = { USER_NOT_FOUND: 'User not found', } as const; /****************************************************************************** Functions ******************************************************************************/ /** * Get all users. */ function getAll(): Promise<IUser[]> { return UserRepo.getAll(); } /** * Add one user. */ function addOne(user: IUser): Promise<void> { return UserRepo.add(user); } /** * Update one user. */ async function updateOne(user: IUser): Promise<void> { const persists = await UserRepo.persists(user.id); if (!persists) { throw new RouteError(HttpStatusCodes.NOT_FOUND, Errors.USER_NOT_FOUND); } return UserRepo.update(user); } /** * Delete a user by their id. */ async function deleteOne(id: number): Promise<void> { const persists = await UserRepo.persists(id); if (!persists) { throw new RouteError(HttpStatusCodes.NOT_FOUND, Errors.USER_NOT_FOUND); } return UserRepo.delete(id); } /****************************************************************************** Export default ******************************************************************************/ export default { Errors, getAll, addOne, updateOne, delete: deleteOne, } as const;