bugfix dbcrud

This commit is contained in:
2024-12-04 13:21:19 +09:00
parent 6504d8d29f
commit c5c4f79e4f
9 changed files with 20 additions and 12 deletions

View File

@@ -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.apiexception import APIException
from app.core.common import ApiReturnModel,ApiReturnPage from app.core.common import ApiReturnModel,ApiReturnPage
#from fastapi_pagination import Page #from fastapi_pagination import Page
from app.db.cruddb.dbdomain import dbdomain from app.db.cruddb import dbdomain
import httpx import httpx
import app.core.config as config import app.core.config as config

View File

@@ -15,7 +15,7 @@ from app.db.crud import (
) )
from app.db.schemas import UserCreate, UserEdit, User, UserOut,RoleBase,Permission 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.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() users_router = r = APIRouter()
@@ -183,4 +183,4 @@ async def permssions_list(
permissions = [] permissions = []
return ApiReturnModel(data = permissions) return ApiReturnModel(data = permissions)
except Exception as e: 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)

View File

@@ -6,7 +6,7 @@ from jwt import PyJWTError
from app.db import models, schemas, session from app.db import models, schemas, session
from app.db.crud import get_user_by_email, create_user,get_user from app.db.crud import get_user_by_email, create_user,get_user
from app.core import security 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, async def get_current_user(security_scopes: SecurityScopes,
db=Depends(session.get_db), token: str = Depends(security.oauth2_scheme) db=Depends(session.get_db), token: str = Depends(security.oauth2_scheme)

View File

@@ -0,0 +1,2 @@
from app.db.cruddb.dbuser import dbuser
from app.db.cruddb.dbdomain import dbdomain

View File

@@ -3,10 +3,9 @@ from sqlalchemy.orm import Session
from sqlalchemy.orm.query import Query from sqlalchemy.orm.query import Query
from typing import Type, List, Optional from typing import Type, List, Optional
from app.core.common import ApiReturnPage from app.core.common import ApiReturnPage
from fastapi_pagination.ext.sqlalchemy import paginate
from sqlalchemy import and_ ,or_ from sqlalchemy import and_ ,or_
from pydantic import BaseModel from pydantic import BaseModel
from .. import models, schemas from app.db import models
class crudbase: class crudbase:
def __init__(self, model: Type[models.Base]): def __init__(self, model: Type[models.Base]):
@@ -62,8 +61,8 @@ class crudbase:
query = query.order_by(asc(column)) query = query.order_by(asc(column))
return query return query
def get_all(self, db: Session) -> ApiReturnPage[models.Base]: def get_all(self, db: Session) -> Query:
return paginate(db.query(self.model)) return db.query(self.model)
def get(self, db: Session, item_id: int) -> Optional[models.Base]: def get(self, db: Session, item_id: int) -> Optional[models.Base]:

View File

@@ -36,7 +36,7 @@ class dbdomain(crudbase):
super().__init__(model=models.Domain) super().__init__(model=models.Domain)
def get_domains(self,db: Session)-> ApiReturnPage[models.Base]: 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]: def get_domains_by_owner(self,db: Session,ownerid:int)-> ApiReturnPage[models.Base]:
return paginate( super().get_by_conditions(db,{"ownerid":ownerid})) return paginate( super().get_by_conditions(db,{"ownerid":ownerid}))

View File

@@ -35,7 +35,7 @@ class dbuser(crudbase):
return super().get_by_conditions(db,{"email":email}).first() return super().get_by_conditions(db,{"email":email}).first()
def get_users(self,db: Session) -> ApiReturnPage[models.Base]: 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]: def get_users_not_admin(self,db: Session) -> ApiReturnPage[models.Base]:
return paginate(super().get_by_conditions(db,{"is_superuser":False})) return paginate(super().get_by_conditions(db,{"is_superuser":False}))
@@ -79,7 +79,7 @@ class dbuser(crudbase):
return db_user return db_user
def get_permissions(self,db: Session,user_id: int) -> t.List[schemas.Permission]: 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]: def get_user_permissions(self,db: Session,user_id: int) -> t.List[schemas.Permission]:
permissions =[] permissions =[]

View File

@@ -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") response = client.get("/api/v1")
assert response.status_code == 200 assert response.status_code == 200
assert response.json() == {"message": "Hello World"} assert response.json() == {"message": "Hello World"}

Binary file not shown.