UNPKG

express-generator-typescript

Version:

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

74 lines (60 loc) 1.76 kB
import { RouteError } from '@src/common/route-errors'; import HttpStatusCodes from '@src/common/HttpStatusCodes'; import UserRepo from '@src/repos/UserRepo'; import { IUser } from '@src/models/User'; /****************************************************************************** Variables ******************************************************************************/ export const USER_NOT_FOUND_ERR = 'User not found'; /****************************************************************************** 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, USER_NOT_FOUND_ERR, ); } // Return user return UserRepo.update(user); } /** * Delete a user by their id. */ async function _delete(id: number): Promise<void> { const persists = await UserRepo.persists(id); if (!persists) { throw new RouteError( HttpStatusCodes.NOT_FOUND, USER_NOT_FOUND_ERR, ); } // Delete user return UserRepo.delete(id); } /****************************************************************************** Export default ******************************************************************************/ export default { getAll, addOne, updateOne, delete: _delete, } as const;