Refactor user CRUD functions

This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-12-05 18:16:11 -03:00
commit a8e620d89c

View file

@ -1,22 +1,21 @@
from datetime import datetime, timezone from datetime import datetime, timezone
from typing import Union from typing import Optional, Union
from uuid import UUID from uuid import UUID
from fastapi import Depends, HTTPException, status from fastapi import Depends, HTTPException, status
from langflow.services.database.models.user.model import User, UserUpdate from langflow.services.database.models.user.model import User, UserUpdate
from langflow.services.deps import get_session from langflow.services.deps import get_session
from sqlalchemy.exc import IntegrityError from sqlalchemy.exc import IntegrityError
from sqlmodel import Session
from typing import Optional
from sqlalchemy.orm.attributes import flag_modified from sqlalchemy.orm.attributes import flag_modified
from sqlmodel import Session, select
def get_user_by_username(db: Session, username: str) -> Union[User, None]: def get_user_by_username(db: Session, username: str) -> Union[User, None]:
return db.query(User).filter(User.username == username).first() return db.exec(select(User).where(User.username == username)).first()
def get_user_by_id(db: Session, id: UUID) -> Union[User, None]: def get_user_by_id(db: Session, id: UUID) -> Union[User, None]:
return db.query(User).filter(User.id == id).first() return db.exec(select(User).where(User.id == id)).first()
def update_user(user_db: Optional[User], user: UserUpdate, db: Session = Depends(get_session)) -> User: def update_user(user_db: Optional[User], user: UserUpdate, db: Session = Depends(get_session)) -> User:
@ -27,7 +26,7 @@ def update_user(user_db: Optional[User], user: UserUpdate, db: Session = Depends
# if user_db_by_username and user_db_by_username.id != user_id: # if user_db_by_username and user_db_by_username.id != user_id:
# raise HTTPException(status_code=409, detail="Username already exists") # raise HTTPException(status_code=409, detail="Username already exists")
user_data = user.dict(exclude_unset=True) user_data = user.model_dump(exclude_unset=True)
changed = False changed = False
for attr, value in user_data.items(): for attr, value in user_data.items():
if hasattr(user_db, attr) and value is not None: if hasattr(user_db, attr) and value is not None: