UNPKG

express-api-cli

Version:

Cli tool for generating an express project. Instead of wasting extra time creating your project structure, start building right away

127 lines (118 loc) 3.14 kB
/* eslint-disable @typescript-eslint/no-explicit-any */ import HttpStatus from 'http-status-codes'; import userService from '../services/user.service'; import { Request, Response, NextFunction } from 'express'; class UserController { public UserService = new userService(); /** * Controller to get all users available * @param {object} Request - request object * @param {object} Response - response object * @param {Function} NextFunction */ public getAllUsers = async ( req: Request, res: Response, next: NextFunction ): Promise<any> => { try { const data = await this.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} Request - request object * @param {object} Response - response object * @param {Function} NextFunction */ public getUser = async ( req: Request, res: Response, next: NextFunction ): Promise<any> => { try { const data = await this.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 new user * @param {object} Request - request object * @param {object} Response - response object * @param {Function} NextFunction */ public newUser = async ( req: Request, res: Response, next: NextFunction ): Promise<any> => { try { const data = await this.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} Request - request object * @param {object} Response - response object * @param {Function} NextFunction */ public updateUser = async ( req: Request, res: Response, next: NextFunction ): Promise<any> => { try { const data = await this.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} Request - request object * @param {object} Response - response object * @param {Function} NextFunction */ public deleteUser = async ( req: Request, res: Response, next: NextFunction ): Promise<any> => { try { await this.UserService.deleteUser(req.params.id); res.status(HttpStatus.OK).json({ code: HttpStatus.OK, data: {}, message: 'User deleted successfully' }); } catch (error) { next(error); } }; } export default UserController;