From 35853cec136a0fa68e369b7d9d94d38a3f9c4db7 Mon Sep 17 00:00:00 2001 From: shahzeydyfah Date: Tue, 31 Dec 2024 07:14:34 +0330 Subject: [PATCH] feat(project):add list --- app/repositories/project.py | 35 +++++++++++++++++++++++++++++++++-- app/urls/project.py | 12 ++++++++++++ 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/app/repositories/project.py b/app/repositories/project.py index 452d964..f30c83a 100644 --- a/app/repositories/project.py +++ b/app/repositories/project.py @@ -1,15 +1,17 @@ +import json import uuid from uuid import UUID +import requests from fastapi import HTTPException from app.config import TaskEnv -from app.models.project import ProjectModel, UpdateSts, ProjectSts +from app.models.project import ProjectModel, UpdateSts, ProjectSts, Design 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 +from typing import TypeVar, List COLLECTION = "project" T = TypeVar('T') @@ -128,6 +130,10 @@ class ProjectRepository(BaseRepository[ProjectModel]): }).to_list(None) return sts_project + async def list_project(self): + project = await use_collection(TaskEnv.CLN_PROJECT).find({}).to_list(None) + return project + async def set_sts_two_for_monitor(self,project_id:uuid.UUID): project = await use_collection(TaskEnv.CLN_PROJECT).find_one({"_id": project_id}) if not ('sts' in project['monitor'] and project['monitor']['sts'] > 1): @@ -164,3 +170,28 @@ class ProjectRepository(BaseRepository[ProjectModel]): extra_filter=[{'sts': 1}], inputs=_input.te) \ .to_dict() + + async def get_all(self): + url = 'http://api.khanesaziceco.ir/api/api/project/table' + headers = {'authorization':'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9hcGkua2hhbmVzYXppY2Vjby5pclwvYXBpXC9hdXRoXC9sb2dpbiIsImlhdCI6MTcyOTg4MTc2OCwiZXhwIjoxNzMyNDczNzY4LCJuYmYiOjE3Mjk4ODE3NjgsImp0aSI6IjRiUGQ0dW1Wc2ZBSnNFUzUiLCJzdWIiOjEzNiwicHJ2IjoiMjNiZDVjODk0OWY2MDBhZGIzOWU3MDFjNDAwODcyZGI3YTU5NzZmNyJ9.LsinrL84iKAd4HaTHmsaDCALXJPwMLegNpeFhlJL0aY'} + data = {"page": 1, + "limit": 400, + "sort":"_id" + } + res = requests.post(url,data=json.dumps(data), headers=headers) + a = res.json() + print(a['rows'][0]) + obj = [] + for i in a['rows']: + _set= ProjectModel( + sts=1, + counter=i['id'], + design= Design(**i) + ).init_id().cu_at() + obj.append(_set.mongo_dict()) + print() + + # await use_collection(TaskEnv.CLN_PROJECT).insert_many(obj) + + return res.json() + diff --git a/app/urls/project.py b/app/urls/project.py index a4164e9..e790a20 100644 --- a/app/urls/project.py +++ b/app/urls/project.py @@ -1,3 +1,4 @@ +from typing import List from uuid import UUID from fastapi import Body @@ -31,6 +32,11 @@ def list_project_design(): def list_project_monitor(): pass +@router.get('/list/project', response_model=List[ThisModel], tags=_tag_base) +@shrink(repo.list_project) +def list_project(): + pass + @router.put('/design/sts/{_id}', response_model=ThisModel, tags=_tag_base) @shrink(repo.update_design_sts) def update_design_sts(_id: UUID, coding: UpdateSts = Body(...)): @@ -83,4 +89,10 @@ def fetch_delete(body: TableEngineRequestType = Body(...)): pass +# @router.post('/get_all', tags=_tag_base) +# @shrink(repo.get_all) +# def get_all(): +# pass + + app.include_router(router) \ No newline at end of file