19 lines
1.2 KiB
TypeScript
19 lines
1.2 KiB
TypeScript
![]() |
import { CallbackStrategyWithIdQuery, ResponseBase } from "../../../core/controllers/http_controller";
|
||
|
import { Result } from "../../../core/helpers/result";
|
||
|
import { DeleteDataBaseModelUseCase } from "../../../core/usecases/delete_database_model_usecase";
|
||
|
import { DeleteRecursiveFolderUseCase } from "../../../core/usecases/delete_recursive_folder_usecase";
|
||
|
import { ReadByIdDataBaseModelUseCase } from "../../../core/usecases/read_by_id_database_model_usecase";
|
||
|
import { MongoIdValidation } from "../../../core/validations/mongo_id_validation";
|
||
|
import { DatasetDBModel } from "../models/dataset_database_model";
|
||
|
import { IDatasetModel } from "../models/dataset_validation_model";
|
||
|
|
||
|
export class DeleteDatasetUseCase extends CallbackStrategyWithIdQuery {
|
||
|
idValidationExpression = new MongoIdValidation();
|
||
|
call = async (id: string): ResponseBase =>
|
||
|
(await new ReadByIdDataBaseModelUseCase<IDatasetModel>(DatasetDBModel).call(id)).map(async (model) =>
|
||
|
(await new DeleteRecursiveFolderUseCase().call(`${model.local_path}/${model.name}/`)).map(async () =>
|
||
|
(await new DeleteDataBaseModelUseCase(model).call(model._id)).map(() => Result.ok({ status: "delete dataset" }))
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
|