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")
|