bugfix dbcrud
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
2
backend/app/db/cruddb/__init__.py
Normal file
2
backend/app/db/cruddb/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
from app.db.cruddb.dbuser import dbuser
|
||||||
|
from app.db.cruddb.dbdomain import dbdomain
|
||||||
@@ -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]:
|
||||||
|
|||||||
@@ -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}))
|
||||||
|
|||||||
@@ -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 =[]
|
||||||
|
|||||||
@@ -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.
Reference in New Issue
Block a user