From 2b4f4292a84126e8210a2912bbeeb94909a27618 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=20=E6=9F=8F?= Date: Wed, 27 Nov 2024 16:22:49 +0900 Subject: [PATCH] fix setuserdomain& activedomian --- backend/app/api/api_v1/routers/platform.py | 7 +++---- backend/app/db/crud.py | 12 +++++++----- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/backend/app/api/api_v1/routers/platform.py b/backend/app/api/api_v1/routers/platform.py index 0a3a9cd..b191705 100644 --- a/backend/app/api/api_v1/routers/platform.py +++ b/backend/app/api/api_v1/routers/platform.py @@ -345,7 +345,7 @@ async def create_userdomain( db=Depends(get_db), ): try: - domain = add_userdomain(db, userid,domainid) + domain = add_userdomain(db,user.id,userid,domainid) return ApiReturnModel(data = domain) except Exception as e: raise APIException('platform:domain',request.url._url,f"Error occurred while add user({userid}) domain:",e) @@ -389,18 +389,17 @@ async def get_activeuserdomain( @r.put( "/activedomain/{domainid}", - response_model=ApiReturnModel[Domain], + response_model=ApiReturnModel[DomainOut|None], response_model_exclude_none=True, ) async def update_activeuserdomain( request: Request, domainid:int, - userId: Optional[int] = Query(None, alias="userId"), user=Depends(get_current_active_user), db=Depends(get_db), ): try: - domain = active_userdomain(db, userId if userId is not None else user.id,domainid) + domain = active_userdomain(db,user.id,domainid) return ApiReturnModel(data= domain) except Exception as e: raise APIException('platform:activedomain',request.url._url,f"Error occurred while update user({user.id}) activedomain:",e) diff --git a/backend/app/db/crud.py b/backend/app/db/crud.py index 962027b..f723643 100644 --- a/backend/app/db/crud.py +++ b/backend/app/db/crud.py @@ -336,8 +336,8 @@ def edit_domain( return db_domain -def add_userdomain(db: Session, userid:int,domainid:int): - db_domain = db.query(models.Domain).get(domainid) +def add_userdomain(db: Session,ownerid:int, userid:int,domainid:int): + db_domain = db.query(models.Domain).filter(and_(models.Domain.id == domainid,models.Domain.ownerid == ownerid,models.Domain.is_active)).first() if db_domain: user_domain = models.UserDomain(userid = userid, domainid = domainid ) db.add(user_domain) @@ -361,16 +361,18 @@ def delete_userdomain(db: Session, userid: int,domainid: int): def active_userdomain(db: Session, userid: int,domainid: int): db_userdomains = db.query(models.UserDomain).filter(models.UserDomain.userid == userid).all() - if not db_userdomains: - raise HTTPException(status.HTTP_404_NOT_FOUND, detail="Domain not found") + # if not db_userdomains: + # raise HTTPException(status.HTTP_404_NOT_FOUND, detail="Domain not found") + for domain in db_userdomains: if domain.domainid == domainid: domain.active = True + active_domain = domain else: domain.active = False db.add(domain) db.commit() - return db_userdomains + return active_domain def get_activedomain(db: Session, userid: int): # user_domains = (db.query(models.Domain,models.UserDomain.active)