feat: Add announcements endpoints (#91)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alexandre Teles (afterSt0rm) <alexandre.teles@ufba.br>
This commit is contained in:
oSumAtrIX
2023-10-11 03:32:53 +02:00
committed by GitHub
parent c65b43aff3
commit 8583e2a2bb
21 changed files with 1628 additions and 292 deletions

View File

@@ -0,0 +1,37 @@
from data.models import AnnouncementDbModel
class ContentFields(dict):
message: str | None
attachment_urls: list[str] | None
class AnnouncementResponseModel(dict):
id: int
author: str | None
title: str
content: ContentFields | None
channel: str
created_at: str
level: int | None
@staticmethod
def to_response(announcement: AnnouncementDbModel):
response = AnnouncementResponseModel(
id=announcement.id,
author=announcement.author,
title=announcement.title,
content=ContentFields(
message=announcement.message,
attachment_urls=[
attachment.attachment_url for attachment in announcement.attachments
],
)
if announcement.message or announcement.attachments
else None,
channel=announcement.channel,
created_at=str(announcement.created_at),
level=announcement.level,
)
return response