File size: 1,096 Bytes
d038098
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from sqlalchemy.orm import Session
import models, schemas
from fastapi import HTTPException

# def create_user(db: Session, user: schemas.UserCreate):
#     db_user = models.User(username=user.username)
#     db.add(db_user)
#     db.commit()
#     db.refresh(db_user)
#     return db_user

def get_or_create_user(db: Session, username: str):
    user = db.query(models.User).filter(models.User.username == username).first()
    if not user:
        user = models.User(username=username)
        db.add(user)
        db.commit()
        db.refresh(user)
    return user

def add_message(db: Session, message: schemas.MessageBase, username: str):
    user = get_or_create_user(db, username)
    message = models.Message(**message.dict())
    message.user = user
    db.add(message)
    db.commit()
    db.refresh(message)
    return message

def get_user_chat_history(db: Session, username: str):
    user = db.query(models.User).filter(models.User.username == username).first()
    if not user:
        return []
    return db.query(models.Message).filter(models.Message.user_id == user.id).all()