This commit is contained in:
IDONTSUDO 2024-11-28 17:22:49 +03:00
parent cad230eee9
commit e163f0698b

View file

@ -6,20 +6,24 @@ import { MongoIdValidation } from "../../../core/validations/mongo_id_validation
import { ProcessWatcherAndDatabaseUpdateService } from "../../datasets/domain/create_dataset_scenario"; import { ProcessWatcherAndDatabaseUpdateService } from "../../datasets/domain/create_dataset_scenario";
import { CalculationInstanceDBModel, ICalculationInstance } from "../models/calculations_instance_database_model"; import { CalculationInstanceDBModel, ICalculationInstance } from "../models/calculations_instance_database_model";
import { Result } from "../../../core/helpers/result"; import { Result } from "../../../core/helpers/result";
import { CreateFileUseCase } from "../../../core/usecases/create_file_usecase";
export class ExecCalculationInstanceProcessScenario extends CallbackStrategyWithIdQuery { export class ExecCalculationInstanceProcessScenario extends CallbackStrategyWithIdQuery {
idValidationExpression = new MongoIdValidation(); idValidationExpression = new MongoIdValidation();
call = async (id: string): ResponseBase => call = async (id: string): ResponseBase =>
(await new ReadByIdDataBaseModelUseCase<ICalculationInstance>(CalculationInstanceDBModel).call(id)).map( (await new ReadByIdDataBaseModelUseCase<ICalculationInstance>(CalculationInstanceDBModel).call(id)).map(
async (model) => { async (model) => {
const fileOutPath = model.instancePath.pathNormalize() + "/form.json";
return (await new IsHaveActiveProcessUseCase().call()).map(async () => { return (await new IsHaveActiveProcessUseCase().call()).map(async () => {
const execCommand = `${model.script} --form '${JSON.stringify( const execCommand = `${model.script} --path ${model.instancePath.pathNormalize()} --form ${fileOutPath}`;
model.formBuilder console.log(execCommand);
)}' --path ${model.instancePath.pathNormalize()}`;
await new CreateFileUseCase().call(fileOutPath, Buffer.from(JSON.stringify(model.formBuilder)));
await CalculationInstanceDBModel.findById(id).updateOne({ await CalculationInstanceDBModel.findById(id).updateOne({
processStatus: "RUN", processStatus: "RUN",
lastProcessExecCommand: execCommand, lastProcessExecCommand: execCommand,
}); });
new ExecProcessUseCase().call( new ExecProcessUseCase().call(
// @ts-expect-error // @ts-expect-error
`${model.project.rootDir}/`, `${model.project.rootDir}/`,