31 lines
991 B
Python
31 lines
991 B
Python
import uuid
|
|
|
|
from sqlalchemy import select
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
from domains.notifications.models import Notification
|
|
|
|
async def create_notification(db: AsyncSession, notification: Notification):
|
|
db.add(notification)
|
|
await db.commit()
|
|
await db.refresh(notification)
|
|
return notification
|
|
|
|
async def get_notification_by_id(db: AsyncSession, notification_id: uuid.UUID):
|
|
result = await db.execute(
|
|
select(Notification).where(Notification.id == notification_id)
|
|
)
|
|
return result.scalar_one_or_none()
|
|
|
|
async def get_user_notifications(db: AsyncSession, user_id: uuid.UUID):
|
|
result = await db.execute(
|
|
select(Notification)
|
|
.where(Notification.receiver_id == user_id)
|
|
.order_by(Notification.created_at.desc())
|
|
)
|
|
return result.scalars().all()
|
|
|
|
async def update_notification(db: AsyncSession, notification: Notification):
|
|
await db.commit()
|
|
await db.refresh(notification)
|
|
return notification
|