webstudio/server/src/features/projects/projects_presentation.ts

43 lines
1.5 KiB
TypeScript
Raw Normal View History

2023-10-26 17:44:54 +03:00
import { CrudController } from "../../core/controllers/crud_controller";
2024-06-10 17:28:13 +03:00
import { CreateNewProjectInstanceScenario, ProjectValidationModel } from "./domain/create_new_project_scenario";
2024-06-19 15:23:01 +03:00
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";
2024-06-10 17:28:13 +03:00
import { ProjectDBModel } from "./models/project_model_database_model";
export class ProjectsPresentation extends CrudController<ProjectValidationModel, typeof ProjectDBModel> {
2023-10-26 17:44:54 +03:00
constructor() {
super({
2024-06-10 17:28:13 +03:00
validationModel: ProjectValidationModel,
url: "projects",
2023-10-26 17:44:54 +03:00
databaseModel: ProjectDBModel,
});
super.post(new CreateNewProjectInstanceScenario().call);
this.subRoutes.push({
method: "POST",
subUrl: "set/active/project",
fn: new SetActiveProjectScenario(),
});
2024-06-19 15:23:01 +03:00
this.subRoutes.push({
method: "GET",
subUrl: "get/active/project/id",
2024-06-19 15:23:01 +03:00
fn: new GetActiveProjectIdScenario(),
});
this.subRoutes.push({
method: "POST",
subUrl: "upload",
fn: new UploadCadFileToProjectScenario(),
});
this.subRoutes.push({
method: "GET",
subUrl: "assets",
fn: new RobossemblerAssetsNetworkMapperScenario(),
});
2024-06-19 15:23:01 +03:00
2023-10-26 17:44:54 +03:00
}
}