import { CrudController } from "../../core/controllers/crud_controller"; import { CoreHttpController } from "../../core/controllers/http_controller"; import { RobossemblerAssets } from "../../core/models/robossembler_assets"; import { CreateNewProjectInstanceScenario } from "./domain/create_new_project_scenario"; import { RobossemblerAssetsNetworkMapperScenario } from "./domain/robossembler_assets_network_mapper_scenario"; import { SaveActiveSceneScenario } from "./domain/save_active_scene_scenario"; import { SetActiveProjectScenario } from "./domain/set_active_project_use_scenario"; import { UploadCadFileToProjectScenario } from "./domain/upload_file_to_to_project_scenario"; import { ProjectInstanceDbModel } from "./models/project_instance_database_model"; import { ProjectInstanceValidationModel } from "./models/project_instance_validation_model"; export class ProjectInstancePresentation extends CrudController< ProjectInstanceValidationModel, typeof ProjectInstanceDbModel > { constructor() { super({ validationModel: ProjectInstanceValidationModel, url: "project_instance", databaseModel: ProjectInstanceDbModel, }); super.post(new CreateNewProjectInstanceScenario().call); this.subRoutes.push({ method: "POST", subUrl: "set/active/project", fn: new SetActiveProjectScenario(), }); this.subRoutes.push({ method: "POST", subUrl: "upload", fn: new UploadCadFileToProjectScenario(), }); } } export class RobossemblerAssetsPresentation extends CoreHttpController { constructor() { super({ url: "robossembler_assets", validationModel: RobossemblerAssets, }); super.get(new RobossemblerAssetsNetworkMapperScenario().call); super.post(new SaveActiveSceneScenario().call); } }