typescript-express-starter
Version:
Quick and Easy TypeScript Express Starter
27 lines (23 loc) • 1.06 kB
text/typescript
import { Router } from 'express';
import { injectable, container } from 'tsyringe';
import { UsersController } from '@controllers/users.controller';
import { createUserSchema, updateUserSchema } from '@dtos/users.dto';
import type { Routes } from '@interfaces/routes.interface';
import { ValidationMiddleware } from '@middlewares/validation.middleware';
export class UsersRoute implements Routes {
public router: Router = Router();
public path = '/users';
private readonly userController: UsersController;
constructor() {
this.userController = container.resolve(UsersController);
this.initializeRoutes();
}
private initializeRoutes() {
this.router.get('/', this.userController.getUsers);
this.router.get('/:id', this.userController.getUserById);
this.router.post('/', ValidationMiddleware(createUserSchema), this.userController.createUser);
this.router.put('/:id', ValidationMiddleware(updateUserSchema), this.userController.updateUser);
this.router.delete('/:id', this.userController.deleteUser);
}
}