Skip to content
This repository has been archived by the owner on Jan 18, 2025. It is now read-only.

Commit

Permalink
refactor: use dataclass with message detail model
Browse files Browse the repository at this point in the history
  • Loading branch information
KevinNitroG committed Jan 16, 2025
1 parent be5c950 commit 1f4e3d3
Show file tree
Hide file tree
Showing 8 changed files with 24 additions and 23 deletions.
4 changes: 2 additions & 2 deletions src/check_phat_nguoi/notify/engines/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from check_phat_nguoi.config import BaseNotificationEngineConfig

from ..markdown_message import MarkdownMessageDetail
from ..models import MessageDetail

logger = getLogger(__name__)

Expand All @@ -22,5 +22,5 @@ async def __aexit__(self, exc_type, exc_value, exc_traceback) -> None: ...
async def send(
self,
engine_config: T,
plates_messages: tuple[MarkdownMessageDetail, ...],
plates_messages: tuple[MessageDetail, ...],
) -> None: ...
8 changes: 4 additions & 4 deletions src/check_phat_nguoi/notify/engines/discord.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

from check_phat_nguoi.config import DiscordNotificationEngineConfig

from ..markdown_message import MarkdownMessageDetail
from ..models import MessageDetail
from .base import BaseNotificationEngine

logger = getLogger(__name__)
Expand All @@ -18,10 +18,10 @@ class _DiscordNotificationCoreEngine:
def __init__(
self,
discord: DiscordNotificationEngineConfig,
plates_messages: tuple[MarkdownMessageDetail, ...],
plates_messages: tuple[MessageDetail, ...],
) -> None:
self.discord: DiscordNotificationEngineConfig = discord
self.plates_messages: tuple[MarkdownMessageDetail, ...] = plates_messages
self.plates_messages: tuple[MessageDetail, ...] = plates_messages
self.bot = Bot(command_prefix="!", intents=Intents.default())
self.user: User

Expand Down Expand Up @@ -62,7 +62,7 @@ class DiscordNotificationEngine(
async def send(
self,
engine_config: DiscordNotificationEngineConfig,
plates_messages: tuple[MarkdownMessageDetail, ...],
plates_messages: tuple[MessageDetail, ...],
) -> None:
async with _DiscordNotificationCoreEngine(
engine_config, plates_messages
Expand Down
4 changes: 2 additions & 2 deletions src/check_phat_nguoi/notify/engines/telegram.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from check_phat_nguoi.constants import SEND_MESSAGE_API_URL_TELEGRAM as API_URL
from check_phat_nguoi.utils import HttpaioSession

from ..markdown_message import MarkdownMessageDetail
from ..models import MessageDetail
from .base import BaseNotificationEngine

logger = getLogger(__name__)
Expand Down Expand Up @@ -56,7 +56,7 @@ async def _send_message(
async def send(
self,
engine_config: TelegramNotificationEngineConfig,
plates_messages: tuple[MarkdownMessageDetail, ...],
plates_messages: tuple[MessageDetail, ...],
) -> None:
await asyncio.gather(
*(
Expand Down
6 changes: 3 additions & 3 deletions src/check_phat_nguoi/notify/markdown_message.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from check_phat_nguoi.constants import MESSAGE_MARKDOWN_PATTERN
from check_phat_nguoi.context import PlateDetail

from .models import MarkdownMessageDetail
from .models import MessageDetail


class MarkdownMessage:
Expand Down Expand Up @@ -34,8 +34,8 @@ def _format_message(self) -> tuple[str, ...]:
]
)

def generate_message(self) -> MarkdownMessageDetail:
return MarkdownMessageDetail(
def generate_message(self) -> MessageDetail:
return MessageDetail(
plate=self._plate_detail.plate,
messages=self._format_message(),
)
4 changes: 2 additions & 2 deletions src/check_phat_nguoi/notify/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
from .mardown_message_detail import MarkdownMessageDetail
from .message_detail import MessageDetail

__all__ = ["MarkdownMessageDetail"]
__all__ = ["MessageDetail"]
8 changes: 0 additions & 8 deletions src/check_phat_nguoi/notify/models/mardown_message_detail.py

This file was deleted.

9 changes: 9 additions & 0 deletions src/check_phat_nguoi/notify/models/message_detail.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from dataclasses import dataclass, field
from datetime import datetime


@dataclass(frozen=True, slots=True)
class MessageDetail:
plate: str
messages: tuple[str, ...]
time: datetime = field(default_factory=datetime.now)
4 changes: 2 additions & 2 deletions src/check_phat_nguoi/notify/send_notifications.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@

from .engines.discord import DiscordNotificationEngine
from .engines.telegram import TelegramNotificationEngine
from .markdown_message import MarkdownMessage, MarkdownMessageDetail
from .markdown_message import MarkdownMessage, MessageDetail

logger = getLogger(__name__)


class SendNotifications:
def __init__(self) -> None:
self._plate_messages: tuple[MarkdownMessageDetail, ...]
self._plate_messages: tuple[MessageDetail, ...]
self._telegram_engine: TelegramNotificationEngine
self._discord_engine: DiscordNotificationEngine

Expand Down

0 comments on commit 1f4e3d3

Please sign in to comment.