From 0e1834a901104a3b93a8a0adb1130357abc3d92f Mon Sep 17 00:00:00 2001 From: shahzeydyfah Date: Thu, 12 Sep 2024 13:39:00 +0330 Subject: [PATCH] feat:add fetch delete --- app/repositories/project.py | 16 +++++++++++++++- app/urls/project.py | 5 +++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/repositories/project.py b/app/repositories/project.py index f1f19ee..e899d47 100644 --- a/app/repositories/project.py +++ b/app/repositories/project.py @@ -7,8 +7,12 @@ from app.config import TaskEnv from app.models.project import ProjectModel, UpdateSts, ProjectSts from core.repositories.base import BaseRepository from core.service.mongo_db import use_collection +from core.utils.table_engine import TableEngineRequestType, TableEngineExport +from core.utils.te import NewTableEngine +from typing import TypeVar COLLECTION = "project" +T = TypeVar('T') class ProjectRepository(BaseRepository[ProjectModel]): def __init__(self): super().__init__(collection=COLLECTION, model=ProjectModel) @@ -130,4 +134,14 @@ class ProjectRepository(BaseRepository[ProjectModel]): await use_collection(TaskEnv.CLN_PROJECT_STS).insert_one(sts_class.mongo_dict()) - return True \ No newline at end of file + return True + + async def fetch_delete(self, _input: TableEngineRequestType) -> TableEngineExport[T]: + return await NewTableEngine.mongo( + query_class=use_collection(self.COLLECTION), + soft_deleted=True, + model=self.MODEL, + search_cols=['name'], + extra_filter={'sts':2}, + inputs=_input.te) \ + .to_dict() diff --git a/app/urls/project.py b/app/urls/project.py index fd7c2bc..f48d9a6 100644 --- a/app/urls/project.py +++ b/app/urls/project.py @@ -72,5 +72,10 @@ def get(_id: UUID): def fetch(body: TableEngineRequestType = Body(...)): pass +@router.post('/fetch_delete', response_model=TableEngineExport[ThisModel], tags=_tag_base) +@shrink(repo.fetch_delete) +def fetch_delete(body: TableEngineRequestType = Body(...)): + pass + app.include_router(router) \ No newline at end of file