didier/database/crud/ufora_announcements.py

25 lines
876 B
Python
Raw Normal View History

2022-06-19 00:36:38 +02:00
from datetime import datetime
2022-06-19 00:23:25 +02:00
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from database.models import UforaCourse, UforaAnnouncement
async def get_courses_with_announcements(session: AsyncSession) -> list[UforaCourse]:
"""Get all courses where announcements are enabled"""
query = select(UforaCourse).where(UforaCourse.log_announcements)
return (await session.execute(query)).scalars().all()
2022-06-19 00:36:38 +02:00
async def create_new_announcement(
session: AsyncSession, announcement_id: int, course: UforaCourse, publication_date: datetime
) -> UforaAnnouncement:
2022-06-19 00:23:25 +02:00
"""Add a new announcement to the database"""
2022-06-19 00:36:38 +02:00
new_announcement = UforaAnnouncement(
announcement_id=announcement_id, course=course, publication_date=publication_date
)
2022-06-19 00:23:25 +02:00
session.add(new_announcement)
await session.commit()
2022-06-19 00:36:38 +02:00
return new_announcement