crud and http controller
This commit is contained in:
parent
cba12be4b1
commit
c27c061c15
51 changed files with 930 additions and 387 deletions
34
server/src/core/controllers/crud_controller.ts
Normal file
34
server/src/core/controllers/crud_controller.ts
Normal file
|
@ -0,0 +1,34 @@
|
|||
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<V, D> extends CoreHttpController<V> {
|
||||
dataBaseModel: mongoose.Model<D>;
|
||||
|
||||
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<D>(
|
||||
this.dataBaseModel
|
||||
).call;
|
||||
this.routes["GET"] = new PaginationDataBaseModelUseCase<D>(
|
||||
this.dataBaseModel
|
||||
).call;
|
||||
this.routes["DELETE"] = new DeleteDataBaseModelUseCase<D>(
|
||||
this.dataBaseModel
|
||||
).call;
|
||||
this.routes["PUT"] = new UpdateDataBaseModelUseCase<V, D>(
|
||||
this.dataBaseModel
|
||||
).call;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue