bw-essentials-core 0.1.2__tar.gz → 0.1.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/PKG-INFO +1 -1
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/notification.py +70 -4
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials_core.egg-info/PKG-INFO +1 -1
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/setup.py +1 -1
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/README.md +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/__init__.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/constants/__init__.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/constants/services.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/data_loch/__init__.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/data_loch/data_loch.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/email_client/__init__.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/email_client/email_client.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/notifications/__init__.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/notifications/teams_notification_schemas.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/notifications/teams_notifications.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/s3_utils/__init__.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/s3_utils/s3_utils.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/__init__.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/api_client.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/broker.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/market_pricer.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/master_data.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/model_portfolio_reporting.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/trade_placement.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/user_app.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/user_portfolio.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/user_portfolio_reporting.py +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials_core.egg-info/SOURCES.txt +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials_core.egg-info/dependency_links.txt +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials_core.egg-info/requires.txt +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials_core.egg-info/top_level.txt +0 -0
- {bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/setup.cfg +0 -0
{bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/notification.py
RENAMED
|
@@ -28,10 +28,11 @@ class NotificationService(ApiClient):
|
|
|
28
28
|
self.name = Services.NOTIFICATION.value
|
|
29
29
|
self.base_url = self.get_base_url(self.name)
|
|
30
30
|
self.urls = {
|
|
31
|
-
"whatsapp": "whatsapp"
|
|
31
|
+
"whatsapp": "whatsapp",
|
|
32
|
+
"email": "email"
|
|
32
33
|
}
|
|
33
34
|
|
|
34
|
-
def _whatsapp(self, title, template, platform, params, to, user_id):
|
|
35
|
+
def _whatsapp(self, title, template, platform, params, to, user_id) -> None:
|
|
35
36
|
"""
|
|
36
37
|
Sends a WhatsApp notification.
|
|
37
38
|
|
|
@@ -66,12 +67,77 @@ class NotificationService(ApiClient):
|
|
|
66
67
|
resp_data = self._post(url=self.base_url, endpoint=self.urls.get('whatsapp'), data=payload)
|
|
67
68
|
logger.info(f"Whatsapp response {resp_data =}")
|
|
68
69
|
|
|
69
|
-
def send_whatsapp(self, template, title, params, to, user_id):
|
|
70
|
-
|
|
70
|
+
def send_whatsapp(self, template, title, params, to, user_id) -> None:
|
|
71
|
+
"""
|
|
72
|
+
|
|
73
|
+
Args:
|
|
74
|
+
template (str): Template for the WhatsApp message.
|
|
75
|
+
title (str): Title of the notification.
|
|
76
|
+
params: Parameters for the notification message.
|
|
77
|
+
to (str): Recipient's whatsapp number.
|
|
78
|
+
user_id (str): The ID of the user receiving the notification.
|
|
71
79
|
|
|
80
|
+
Returns:
|
|
81
|
+
None
|
|
82
|
+
"""
|
|
83
|
+
logger.info(f"In - send_whatsapp_notification {user_id =} {title = } {params = } {to = }")
|
|
72
84
|
self._whatsapp(title=title,
|
|
73
85
|
template=template,
|
|
74
86
|
platform=self._get_env_var(NotificationService.PLATFORM),
|
|
75
87
|
params=params,
|
|
76
88
|
to=to,
|
|
77
89
|
user_id=user_id)
|
|
90
|
+
|
|
91
|
+
def _email(self, title: str, content: str, platform: str, to: str, user_id: str) -> None:
|
|
92
|
+
"""
|
|
93
|
+
Sends an email notification using the internal notification service.
|
|
94
|
+
|
|
95
|
+
Args:
|
|
96
|
+
title (str): The subject or title of the email.
|
|
97
|
+
content (str): The HTML or plain text body of the email.
|
|
98
|
+
platform (str): The platform identifier from which the email is sent (e.g., 'prometheus').
|
|
99
|
+
to (str): Recipient's email address.
|
|
100
|
+
user_id (str): The ID of the user for tracking or logging purposes.
|
|
101
|
+
|
|
102
|
+
Returns:
|
|
103
|
+
None
|
|
104
|
+
|
|
105
|
+
"""
|
|
106
|
+
logger.info(f"In - email {user_id =}, {to =}, {title =}, {platform =}, {content =}")
|
|
107
|
+
payload = {
|
|
108
|
+
"to": to,
|
|
109
|
+
"userId": user_id,
|
|
110
|
+
"platform": platform,
|
|
111
|
+
"title": title,
|
|
112
|
+
"content": content
|
|
113
|
+
}
|
|
114
|
+
logger.info(f"email {payload =}")
|
|
115
|
+
headers = {
|
|
116
|
+
'api-key': self._get_env_var(NotificationService.NOTIFICATION_API_KEY),
|
|
117
|
+
'Content-Type': 'application/json'
|
|
118
|
+
}
|
|
119
|
+
self.set_headers(headers)
|
|
120
|
+
resp_data = self._post(url=self.base_url, endpoint=self.urls.get('email'), json=payload)
|
|
121
|
+
logger.info(f"Email response {resp_data =}")
|
|
122
|
+
|
|
123
|
+
def send_email(self, title: str, content: str, to: str, user_id: str) -> None:
|
|
124
|
+
"""
|
|
125
|
+
Sends an email notification to the specified recipient.
|
|
126
|
+
|
|
127
|
+
Args:
|
|
128
|
+
title (str): The subject or title of the email.
|
|
129
|
+
content (str): The HTML or plain text content of the email.
|
|
130
|
+
to (str): The recipient's email address.
|
|
131
|
+
user_id (str): The ID of the user associated with the notification.
|
|
132
|
+
|
|
133
|
+
Returns:
|
|
134
|
+
None
|
|
135
|
+
"""
|
|
136
|
+
logger.info(f"In - send_email {user_id =}, {title =}, {to =}")
|
|
137
|
+
self._email(
|
|
138
|
+
title=title,
|
|
139
|
+
content=content,
|
|
140
|
+
platform=self._get_env_var(NotificationService.PLATFORM),
|
|
141
|
+
to=to,
|
|
142
|
+
user_id=user_id
|
|
143
|
+
)
|
|
@@ -10,7 +10,7 @@ from setuptools import setup, find_packages
|
|
|
10
10
|
|
|
11
11
|
setup(
|
|
12
12
|
name="bw-essentials-core",
|
|
13
|
-
version="0.1.
|
|
13
|
+
version="0.1.3",
|
|
14
14
|
author="InvestorAI",
|
|
15
15
|
author_email="support+tech@investorai.in",
|
|
16
16
|
description="Reusable utilities for S3, email, Data Loch, Microsoft Teams Notifications and more.",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/email_client/__init__.py
RENAMED
|
File without changes
|
{bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/email_client/email_client.py
RENAMED
|
File without changes
|
{bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/notifications/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/market_pricer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/trade_placement.py
RENAMED
|
File without changes
|
|
File without changes
|
{bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials/services/user_portfolio.py
RENAMED
|
File without changes
|
|
File without changes
|
{bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials_core.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials_core.egg-info/requires.txt
RENAMED
|
File without changes
|
{bw_essentials_core-0.1.2 → bw_essentials_core-0.1.3}/bw_essentials_core.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|