webstudio/server/src/features/realtime/usecases/run_instance_pipeline_usecase.ts

39 lines
1.3 KiB
TypeScript
Raw Normal View History

2023-11-16 00:40:35 +03:00
import { App } from "../../../core/controllers/app";
2023-11-14 20:44:06 +03:00
import { Result } from "../../../core/helper/result";
2023-11-16 00:40:35 +03:00
import { EXEC_TYPE } from "../../../core/model/exec_error_model";
2023-11-14 20:44:06 +03:00
import { ReadByIdDataBaseModelUseCase } from "../../../core/usecases/read_by_id_database_model_usecase";
import { IProjectModel, ProjectDBModel } from "../../projects/projects_model";
import {
RealTimeValidationModel,
pipelineRealTimeService,
} from "../realtime_presentation";
export class RunInstancePipelineUseCase {
async call(model: RealTimeValidationModel): Promise<Result<Error, any>> {
const id = model.id;
const readByIdDataBaseModelUseCase =
await new ReadByIdDataBaseModelUseCase<IProjectModel>(
ProjectDBModel
).call(id);
if (readByIdDataBaseModelUseCase.isFailure()) {
return readByIdDataBaseModelUseCase.forward();
}
const projectModel = readByIdDataBaseModelUseCase.value;
2023-11-16 00:40:35 +03:00
projectModel.pipelines.map((el) => {
el.process.type = EXEC_TYPE.EXEC;
});
2023-11-14 20:44:06 +03:00
pipelineRealTimeService.runPipeline(
projectModel.pipelines,
2023-11-16 00:40:35 +03:00
App.staticFilesStoreDir() + projectModel.rootDir + "/",
2023-11-14 20:44:06 +03:00
projectModel._id
);
2023-11-16 00:40:35 +03:00
2023-11-14 20:44:06 +03:00
return Result.ok({ status: "ok" });
}
}
2023-11-16 00:40:35 +03:00
// /Users/idontsudo/Desktop/testdeck-mocha-seed/server/build/public/ce4e7710-73dc-47fc-87ee-d448ea2412ce
// new ObjectId("6554c22d2ef337587505a494")