import { IRouteModel } from "../interfaces/router"; import { CreateDataBaseModelUseCase } from "../usecases/create_database_model_usecase"; import { DeleteDataBaseModelUseCase } from "../usecases/delete_database_model_usecase"; import { PaginationDataBaseModelUseCase } from "../usecases/pagination_database_model_usecase"; import { UpdateDataBaseModelUseCase } from "../usecases/update_database_model_usecase"; import { CoreHttpController } from "./http_controller"; import mongoose from "mongoose"; export class CrudController extends CoreHttpController { dataBaseModel: mongoose.Model; constructor(routerModel: IRouteModel) { super(routerModel); this.url = "/" + routerModel.url; this.validationModel = routerModel.validationModel; this.dataBaseModel = routerModel.databaseModel; this.init(); } init() { this.routes["POST"] = new CreateDataBaseModelUseCase( this.dataBaseModel ).call; this.routes["GET"] = new PaginationDataBaseModelUseCase( this.dataBaseModel ).call; this.routes["DELETE"] = new DeleteDataBaseModelUseCase( this.dataBaseModel ).call; this.routes["PUT"] = new UpdateDataBaseModelUseCase( this.dataBaseModel ).call; } }