Commit c511d951 authored by porramet's avatar porramet

udate

parent 98ee8070
Pipeline #1697 failed with stages
......@@ -6,7 +6,7 @@ pip install git+https://git.igridproject.info/porrametict/notification_center.gi
How to Use
1. Configure the Notification Service
1. Configure the Notification center
You need to create a configuration dictionary for both Gmail and/or Telegram. The configuration should look like this:
```python
......@@ -24,11 +24,11 @@ config = {
}
```
2. Initialize the Notification Service
2. Initialize the Notification center
```python
from notification_service import NotificationService
notification_service = NotificationService(config)
from notification_center import NotificationCenter
notification_center = NotificationCenter(config)
```
3. Send a Notification
......@@ -39,9 +39,8 @@ Example:
Sending a Gmail Notification:
```python
from src.strategies.gmail import MessageParams
gmail_params:MessageParams = {
gmail_params = {
"to" : ["poramet.tan@nectec.or.th"],
"subject" : "Test Notification",
"body" : f"""
......@@ -55,15 +54,14 @@ notification_params = {
"params": gmail_params
}
notification_service.send_notification(notification_params)
notification_center.send_notification(notification_params)
```
Sending a Telegram Notification:
```python
from src.strategies.telegram import MessageParams
telegram_params:MessageParams = {
telegram_params = {
"text" :f"""Hello World"""
}
......@@ -72,5 +70,5 @@ notification_params = {
"params": telegram_params
}
notification_service.send_notification(notification_params)
notification_center.send_notification(notification_params)
```
from setuptools import setup, find_packages
setup(
name='nc_service',
name='notification_center',
version='1.0.0',
packages=find_packages(where='src'),
package_dir={'': 'src'},
......
import strategies.gmail as gmail
import strategies.telegram as telegram
from notification_service import *
\ No newline at end of file
from .strategies import gmail
from .strategies import telegram
from .notification_center import *
\ No newline at end of file
from typing import TypedDict,Union,Literal,Optional
from src.strategies.gmail import Gmail,MessageParams as GmailMessageParams
from src.strategies.telegram import Telegram, MessageParams as TelegramMessageParams
from src.notification_sender import NotificationSender
from .strategies.gmail import Gmail,MessageParams as GmailMessageParams
from .strategies.telegram import Telegram, MessageParams as TelegramMessageParams
from .notification_sender import NotificationSender
class GmailConfig(TypedDict):
......@@ -24,7 +24,7 @@ class NotificationMessageParams(TypedDict):
method: Literal['gmail', 'telegram']
params: Union[GmailMessageParams, TelegramMessageParams]
class NotificationService:
class NotificationCenter:
_config : NotificationConfig
_gmail_strategy : Optional[Gmail] = None
_telegram_strategy : Optional[Telegram] = None
......
from typing import Union
from strategies.gmail import MessageParams as GmailMessageParams
from strategies.telegram import MessageParams as TelegramMessageParams
from strategies.notification_strategy import NotificationStrategy
from .strategies.gmail import MessageParams as GmailMessageParams
from .strategies.telegram import MessageParams as TelegramMessageParams
from .strategies.notification_strategy import NotificationStrategy
class NotificationSender:
......
from notification_center import NotificationCenter
from src import config
_config = {
"telegram": {
"bot_token": config.TG_BOT_TOKEN, # Telegram bot token
"chat_id": config.TG_CHAT_ID, # The chat ID to send messages to
}
}
ns = NotificationCenter(_config)
params = {"method":"telegram","params":{"text":"TEST"}}
ns.send_notification(params)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment