36 lines
933 B
Python
36 lines
933 B
Python
from fastapi import Depends, APIRouter, HTTPException, Depends
|
|
from sqlalchemy.orm import Session
|
|
from app.db import models
|
|
from app.core.security import get_current_user
|
|
from app.api import schemas
|
|
|
|
|
|
# бд
|
|
def get_db():
|
|
db = models.SessionLocal()
|
|
try:
|
|
yield db
|
|
finally:
|
|
db.close()
|
|
|
|
|
|
messagesRouter = APIRouter(
|
|
prefix="/messages",
|
|
tags=[],
|
|
)
|
|
|
|
@messagesRouter.get("/history/{contact_id}")
|
|
async def get_chat_history(
|
|
contact_id: int,
|
|
current_user: models.User = Depends(get_current_user),
|
|
db: Session = Depends(get_db),
|
|
limit: int = 50
|
|
):
|
|
messages = db.query(models.Message).filter(
|
|
(models.Message.sender_id == current_user.id) & (models.Message.receiver_id == contact_id) |
|
|
(models.Message.sender_id == contact_id) & (models.Message.receiver_id == current_user.id)
|
|
).order_by(models.Message.timestamp.asc()).limit(limit).all()
|
|
|
|
return messages
|
|
|