| | |
| | | from sqlalchemy import Column, Integer, DateTime, Text |
| | | from sqlalchemy.orm import Session |
| | | |
| | | from Log import logger |
| | | from app.config.const import RAGFLOW |
| | | from app.models.base_model import Base |
| | | |
| | | |
| | |
| | | db.rollback() # 回滚事务 |
| | | |
| | | |
| | | async def update_token(db: Session, user_id: int, access_token: str, token: dict): |
| | | # 参数验证 |
| | | if not isinstance(user_id, int) or user_id <= 0: |
| | | return |
| | | db_token = None |
| | | print(token) |
| | | try: |
| | | # 查询现有记录 |
| | | db_token = db.query(TokenModel).filter_by(user_id=user_id).first() |
| | | if db_token: |
| | | # 记录存在,进行更新 |
| | | db_token.token = access_token |
| | | for k, v in token.items(): |
| | | setattr(db_token, k.replace("app", "token"), v) |
| | | else: |
| | | # 记录不存在,进行插入 |
| | | db_token = TokenModel( |
| | | user_id=user_id, |
| | | token=access_token, |
| | | ) |
| | | for k, v in token.items(): |
| | | setattr(db_token, k.replace("app", "token"), v) |
| | | db.add(db_token) |
| | | |
| | | # 提交事务 |
| | | db.commit() |
| | | db.refresh(db_token) |
| | | |
| | | except Exception as e: |
| | | logger.error(e) |
| | | # 异常处理 |
| | | db.rollback() # 回滚事务 |
| | | |
| | | |
| | | def get_token(db: Session, user_id: int) -> Type[TokenModel] | None: |
| | | return db.query(TokenModel).filter_by(user_id=user_id).first() |