This commit is contained in:
IDONTSUDO 2024-07-23 15:57:22 +03:00
parent 318d0a7893
commit 9120729d41
20 changed files with 119 additions and 79 deletions

View file

@ -1,6 +1,6 @@
import * as fs from "fs";
import { promisify } from "node:util";
import { rimraf } from 'rimraf'
import { rimraf } from "rimraf";
export class FileSystemRepository {
public createDir = promisify(fs.mkdir);
@ -8,6 +8,7 @@ export class FileSystemRepository {
public writeFileAsync = promisify(fs.writeFile);
public dirIsExists = promisify(fs.exists);
public stat = promisify(fs.stat);
public deleteDir = promisify(fs.unlink);
public readFileAsync = promisify(fs.readFile);
public readdir = promisify(fs.readdir);
public deleteDirRecursive = rimraf;
@ -21,7 +22,9 @@ export class FileSystemRepository {
}
return await this.readFileAsync(path);
}
deleteFile = async (path: string) => {
return await this.deleteDir(path);
};
readDirRecursive(path: string, filesToDir: string[] = []): string[] {
const files = fs.readdirSync(path);
files.forEach((file) => {
@ -41,5 +44,4 @@ export class FileSystemRepository {
});
return filesToDir;
}
}

View file

@ -0,0 +1,14 @@
import { Result } from "../helpers/result";
import { FileSystemRepository } from "../repository/file_system_repository";
export class DeleteFileUseCase {
fileSystemRepository = new FileSystemRepository();
call = (path: string) => {
try {
this.fileSystemRepository.deleteFile(path);
return Result.ok("file delete");
} catch {
return Result.error("Unknown error");
}
};
}

View file

@ -0,0 +1,16 @@
import { CallbackStrategyWithIdQuery, ResponseBase } from "../../core/controllers/http_controller";
import { Result } from "../../core/helpers/result";
import { DeleteDataBaseModelUseCase } from "../../core/usecases/delete_database_model_usecase";
import { ReadByIdDataBaseModelUseCase } from "../../core/usecases/read_by_id_database_model_usecase";
import { CoreValidation } from "../../core/validations/core_validation";
import { MongoIdValidation } from "../../core/validations/mongo_id_validation";
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 )
);
}