From c5c4f79e4f65de65d3c375a001bb78ca7cf47a4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=20=E6=9F=8F?= Date: Wed, 4 Dec 2024 13:21:19 +0900 Subject: [PATCH] bugfix dbcrud --- backend/app/api/api_v1/routers/platform.py | 2 +- backend/app/api/api_v1/routers/users.py | 4 ++-- backend/app/core/auth.py | 2 +- backend/app/db/cruddb/__init__.py | 2 ++ backend/app/db/cruddb/crudbase.py | 7 +++---- backend/app/db/cruddb/dbdomain.py | 2 +- backend/app/db/cruddb/dbuser.py | 4 ++-- backend/app/tests/test_main.py | 9 ++++++++- backend/requirements.txt | Bin 1574 -> 1878 bytes 9 files changed, 20 insertions(+), 12 deletions(-) create mode 100644 backend/app/db/cruddb/__init__.py diff --git a/backend/app/api/api_v1/routers/platform.py b/backend/app/api/api_v1/routers/platform.py index e477ead..ec084a6 100644 --- a/backend/app/api/api_v1/routers/platform.py +++ b/backend/app/api/api_v1/routers/platform.py @@ -11,7 +11,7 @@ from app.core.auth import get_current_active_user,get_current_user from app.core.apiexception import APIException from app.core.common import ApiReturnModel,ApiReturnPage #from fastapi_pagination import Page -from app.db.cruddb.dbdomain import dbdomain +from app.db.cruddb import dbdomain import httpx import app.core.config as config diff --git a/backend/app/api/api_v1/routers/users.py b/backend/app/api/api_v1/routers/users.py index edb26cb..d22860f 100644 --- a/backend/app/api/api_v1/routers/users.py +++ b/backend/app/api/api_v1/routers/users.py @@ -15,7 +15,7 @@ from app.db.crud import ( ) from app.db.schemas import UserCreate, UserEdit, User, UserOut,RoleBase,Permission from app.core.auth import get_current_user,get_current_active_user, get_current_active_superuser -from app.db.cruddb.dbuser import dbuser +from app.db.cruddb import dbuser users_router = r = APIRouter() @@ -183,4 +183,4 @@ async def permssions_list( permissions = [] return ApiReturnModel(data = permissions) except Exception as e: - raise APIException('user:userpermssions',request.url._url,f"Error occurred while get user(){current_user.id} permissions:",e) + raise APIException('user:userpermssions',request.url._url,f"Error occurred while get user({current_user.id}) permissions:",e) diff --git a/backend/app/core/auth.py b/backend/app/core/auth.py index d5da2d3..e632d47 100644 --- a/backend/app/core/auth.py +++ b/backend/app/core/auth.py @@ -6,7 +6,7 @@ from jwt import PyJWTError from app.db import models, schemas, session from app.db.crud import get_user_by_email, create_user,get_user from app.core import security -from app.db.cruddb.dbuser import dbuser +from app.db.cruddb import dbuser async def get_current_user(security_scopes: SecurityScopes, db=Depends(session.get_db), token: str = Depends(security.oauth2_scheme) diff --git a/backend/app/db/cruddb/__init__.py b/backend/app/db/cruddb/__init__.py new file mode 100644 index 0000000..1bf9f7d --- /dev/null +++ b/backend/app/db/cruddb/__init__.py @@ -0,0 +1,2 @@ +from app.db.cruddb.dbuser import dbuser +from app.db.cruddb.dbdomain import dbdomain \ No newline at end of file diff --git a/backend/app/db/cruddb/crudbase.py b/backend/app/db/cruddb/crudbase.py index c3e2368..f7b05ce 100644 --- a/backend/app/db/cruddb/crudbase.py +++ b/backend/app/db/cruddb/crudbase.py @@ -3,10 +3,9 @@ from sqlalchemy.orm import Session from sqlalchemy.orm.query import Query from typing import Type, List, Optional from app.core.common import ApiReturnPage -from fastapi_pagination.ext.sqlalchemy import paginate from sqlalchemy import and_ ,or_ from pydantic import BaseModel -from .. import models, schemas +from app.db import models class crudbase: def __init__(self, model: Type[models.Base]): @@ -62,8 +61,8 @@ class crudbase: query = query.order_by(asc(column)) return query - def get_all(self, db: Session) -> ApiReturnPage[models.Base]: - return paginate(db.query(self.model)) + def get_all(self, db: Session) -> Query: + return db.query(self.model) def get(self, db: Session, item_id: int) -> Optional[models.Base]: diff --git a/backend/app/db/cruddb/dbdomain.py b/backend/app/db/cruddb/dbdomain.py index d36eeac..2acf05f 100644 --- a/backend/app/db/cruddb/dbdomain.py +++ b/backend/app/db/cruddb/dbdomain.py @@ -36,7 +36,7 @@ class dbdomain(crudbase): super().__init__(model=models.Domain) def get_domains(self,db: Session)-> ApiReturnPage[models.Base]: - return super().get_all(db) + return paginate(super().get_all(db)) def get_domains_by_owner(self,db: Session,ownerid:int)-> ApiReturnPage[models.Base]: return paginate( super().get_by_conditions(db,{"ownerid":ownerid})) diff --git a/backend/app/db/cruddb/dbuser.py b/backend/app/db/cruddb/dbuser.py index c7efe4c..41e128b 100644 --- a/backend/app/db/cruddb/dbuser.py +++ b/backend/app/db/cruddb/dbuser.py @@ -35,7 +35,7 @@ class dbuser(crudbase): return super().get_by_conditions(db,{"email":email}).first() def get_users(self,db: Session) -> ApiReturnPage[models.Base]: - return paginate(super().get_all()) + return paginate(super().get_all(db)) def get_users_not_admin(self,db: Session) -> ApiReturnPage[models.Base]: return paginate(super().get_by_conditions(db,{"is_superuser":False})) @@ -79,7 +79,7 @@ class dbuser(crudbase): return db_user def get_permissions(self,db: Session,user_id: int) -> t.List[schemas.Permission]: - return dbpermission.get_by_conditions(db).all() + return dbpermission.get_all(db).all() def get_user_permissions(self,db: Session,user_id: int) -> t.List[schemas.Permission]: permissions =[] diff --git a/backend/app/tests/test_main.py b/backend/app/tests/test_main.py index 024cf9e..a1048ae 100644 --- a/backend/app/tests/test_main.py +++ b/backend/app/tests/test_main.py @@ -1,4 +1,11 @@ -def test_read_main(client): + +import pytest +from fastapi.testclient import TestClient +from app.main import app + +client = TestClient(app) + +def test_read_main(): response = client.get("/api/v1") assert response.status_code == 200 assert response.json() == {"message": "Hello World"} diff --git a/backend/requirements.txt b/backend/requirements.txt index 5e01eb39b9dfd716d56b72746b1c7396425608c3..8f0139ace584b8963c9758e93b89d35f9840b6da 100644 GIT binary patch delta 285 zcmZ3+bB%98iE|=D2}3?ZE<+|mGDA5-5s)rnNM$HyumwUx20aE7AU0&+W#D1}sVo7i zfXEqvWsHEb1{?ElGfq}x;#1dUC;+NT2bz%wR-FknIS*`-0oW9fYGVeY$*xRWwR3@T zML?T$p*9wQ-I33b1GgKb#}s7#C