import { CrudController } from "../../core/controllers/crud_controller"; import { CreateNewProjectInstanceScenario, ProjectValidationModel } from "./domain/create_new_project_scenario"; import { GetActiveProjectIdScenario } from "./domain/get_active_project_id_scenario"; import { RobossemblerAssetsNetworkMapperScenario } from "./domain/robossembler_assets_network_mapper_scenario"; import { SetActiveProjectScenario } from "./domain/set_active_project_use_scenario"; import { UploadCadFileToProjectScenario } from "./domain/upload_file_to_to_project_scenario"; import { ProjectDBModel } from "./models/project_model_database_model"; export class ProjectsPresentation extends CrudController { constructor() { super({ validationModel: ProjectValidationModel, url: "projects", databaseModel: ProjectDBModel, }); super.post(new CreateNewProjectInstanceScenario().call); this.subRoutes.push({ method: "POST", subUrl: "set/active/project", fn: new SetActiveProjectScenario(), }); this.subRoutes.push({ method: "GET", subUrl: "get/active/project/id", fn: new GetActiveProjectIdScenario(), }); this.subRoutes.push({ method: "POST", subUrl: "upload", fn: new UploadCadFileToProjectScenario(), }); this.subRoutes.push({ method: "GET", subUrl: "assets", fn: new RobossemblerAssetsNetworkMapperScenario(), }); } }