Skip to content

Commit bfeed04

Browse files
committed
callback_url param added to EskizSMS
1 parent e7a28c7 commit bfeed04

File tree

3 files changed

+32
-13
lines changed

3 files changed

+32
-13
lines changed

eskiz_sms/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from . import types
33
from .eskiz import EskizSMS
44

5-
__version__ = '0.1.17'
5+
__version__ = '0.1.18'
66

77
__all__ = [
88
'EskizSMS',

eskiz_sms/eskiz.py

+30-11
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
11
from typing import Union, Optional, List
22

3-
from pydantic import HttpUrl
3+
from pydantic import HttpUrl, ValidationError
44

55
from .base import request, Token
6-
from .exceptions import ContactNotFound
6+
from .exceptions import ContactNotFound, EskizException
77
from .types import User, Contact, CallbackUrl, Response
88

99

1010
class EskizSMS:
11-
__slots__ = ("token", "_user")
11+
__slots__ = (
12+
"token",
13+
"_user",
14+
"callback_url"
15+
)
1216

1317
def __init__(
1418
self,
1519
email: str,
1620
password: str,
17-
save_token=False,
18-
env_file_path=None,
21+
callback_url: Optional[Union[str, HttpUrl]] = None,
22+
save_token: bool = False,
23+
env_file_path: str = None,
1924
auto_update_token=True
2025
):
2126
self.token = Token(
@@ -25,6 +30,12 @@ def __init__(
2530
auto_update=auto_update_token
2631
)
2732
self._user: Optional[User] = None
33+
self.callback_url = callback_url
34+
if self.callback_url:
35+
try:
36+
CallbackUrl(url=self.callback_url)
37+
except ValidationError:
38+
raise EskizException("callback_url is invalid")
2839

2940
@property
3041
def user(self) -> Optional[User]:
@@ -93,9 +104,13 @@ def send_sms(self, mobile_phone: str, message: str, from_whom: str = '4546',
93104
"message": message,
94105
"from_whom": from_whom,
95106
}
96-
if callback_url is not None:
97-
CallbackUrl(url=callback_url)
98-
payload['callback_url'] = callback_url
107+
callback_url = callback_url or self.callback_url
108+
if callback_url:
109+
try:
110+
CallbackUrl(url=callback_url)
111+
payload['callback_url'] = callback_url
112+
except ValidationError:
113+
raise EskizException('callback_url is invalid')
99114
return Response(**request.post("/message/sms/send", token=self.token, payload=payload))
100115

101116
def send_global_sms(self, mobile_phone: str, message: str, country_code: str,
@@ -115,9 +130,13 @@ def send_global_sms(self, mobile_phone: str, message: str, country_code: str,
115130
"country_code": country_code,
116131
"unicode": unicode
117132
}
118-
if callback_url is not None:
119-
CallbackUrl(url=callback_url)
120-
payload["callback_url"] = callback_url
133+
callback_url = callback_url or self.callback_url
134+
if callback_url:
135+
try:
136+
CallbackUrl(url=callback_url)
137+
payload['callback_url'] = callback_url
138+
except ValidationError:
139+
raise EskizException('callback_url is invalid')
121140
return Response(**request.post("/message/sms/send-global", token=self.token, payload=payload))
122141

123142
def send_batch(self, *, messages: List[dict], from_whom: str = "4546", dispatch_id: int) -> Response:

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "eskiz-sms"
3-
version = "0.1.17"
3+
version = "0.1.18"
44
description = "Package for eskiz.uz/sms"
55
homepage = "https://github.com/malikovss/eskiz-sms"
66
authors = ["Malikov <oopanndaa@gmail.com>"]

0 commit comments

Comments
 (0)