This commit is contained in:
IDONTSUDO 2024-07-25 11:50:43 +03:00
parent 9120729d41
commit 6003cfde04
9 changed files with 29 additions and 184 deletions

View file

@ -182,7 +182,7 @@ export class CoreHttpController<V> implements ICoreHttpController {
public put(usecase: any) {
this.routes["PUT"] = usecase;
}
public delete(usecase: CallbackStrategyWithValidationModel<V>) {
public delete(usecase: any) {
this.routes["DELETE"] = usecase;
}
public async requestResponseController<T>(

View file

@ -1,16 +1,31 @@
import { CallbackStrategyWithIdQuery, ResponseBase } from "../../core/controllers/http_controller";
import { Result } from "../../core/helpers/result";
import { StaticFiles } from "../../core/models/static_files";
import { DeleteDataBaseModelUseCase } from "../../core/usecases/delete_database_model_usecase";
import { DeleteFileUseCase } from "../../core/usecases/delete_file_usecase";
import { ReadByIdDataBaseModelUseCase } from "../../core/usecases/read_by_id_database_model_usecase";
import { SearchManyDataBaseModelUseCase } from "../../core/usecases/search_many_database_model_usecase";
import { CoreValidation } from "../../core/validations/core_validation";
import { MongoIdValidation } from "../../core/validations/mongo_id_validation";
import { IProjectModel, ProjectDBModel } from "../projects/models/project_model_database_model";
import { SceneModel } from "./create_new_scene_scenario";
export class DeleteSceneScenario extends CallbackStrategyWithIdQuery {
idValidationExpression: CoreValidation = new MongoIdValidation();
call = async (id: string): ResponseBase =>
(await new ReadByIdDataBaseModelUseCase<SceneModel>(SceneModel).call(id)).map((sceneModel) => Result.ok()
// (await new DeleteDataBaseModelUseCase(SceneModel).call(id)).map(() => DeleteF )
(await new ReadByIdDataBaseModelUseCase<SceneModel>(SceneModel).call(id)).map(async (sceneModel) =>
(await new DeleteDataBaseModelUseCase(SceneModel).call(id)).map(async () =>
(
await new SearchManyDataBaseModelUseCase<IProjectModel>(ProjectDBModel).call(
{ isActive: true },
"is dont active projects"
)
).map(async (projectModel) => {
const { rootDir } = projectModel[0];
(await new DeleteFileUseCase()).call(`${rootDir}${StaticFiles.scenes}${sceneModel.name}.json`);
return Result.ok("Delete scene");
})
)
);
}

View file

@ -16,6 +16,7 @@ export class ScenePresentation extends CrudController<SceneValidationModel, type
validationModel: SceneValidationModel,
databaseModel: SceneDBModel,
});
super.post(new CreateNewSceneScenario().call);
super.put(new EditSceneScenario().call);
this.subRoutes.push({