Skip to content

Commit 15620ab

Browse files
committed
✨ phone validationc country deny rule
1 parent 0aef9d6 commit 15620ab

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

dymoapi/branches/private.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88
def is_valid_data(token, data):
99
if not any([key in list(data.keys()) for key in ["url", "email", "phone", "domain", "creditCard", "ip", "wallet", "userAgent", "iban"]]): raise BadRequestError("You must provide at least one parameter.")
1010
try:
11-
response = requests.post(f"{get_base_url()}/v1/private/secure/verify", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.54", "Authorization": token})
11+
response = requests.post(f"{get_base_url()}/v1/private/secure/verify", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.55", "Authorization": token})
1212
response.raise_for_status()
1313
return response.json()
1414
except requests.RequestException as e: raise APIError(str(e))
1515

1616
def is_valid_data_raw(token, data):
1717
if not any([key in list(data.keys()) for key in ["url", "email", "phone", "domain", "creditCard", "ip", "wallet", "userAgent", "iban"]]): raise BadRequestError("You must provide at least one parameter.")
1818
try:
19-
response = requests.post(f"{get_base_url()}/v1/private/secure/verify", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.54", "Authorization": token})
19+
response = requests.post(f"{get_base_url()}/v1/private/secure/verify", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.55", "Authorization": token})
2020
response.raise_for_status()
2121
return response.json()
2222
except requests.RequestException as e: raise APIError(str(e))
@@ -54,7 +54,7 @@ def is_valid_email(token: Optional[str], email: str, rules: Optional[Dict[str, L
5454
resp = requests.post(
5555
f"{get_base_url()}/v1/private/secure/verify",
5656
json={"email": email, "plugins": plugins},
57-
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.54", "Authorization": token}
57+
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.55", "Authorization": token}
5858
)
5959
resp.raise_for_status()
6060
data = resp.json().get("email", {})
@@ -121,7 +121,7 @@ def is_valid_ip(token: Optional[str], ip: str, rules: Optional[Dict[str, List[st
121121
resp = requests.post(
122122
f"{get_base_url()}/v1/private/secure/verify",
123123
json={"email": ip, "plugins": plugins},
124-
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.54", "Authorization": token}
124+
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.55", "Authorization": token}
125125
)
126126
resp.raise_for_status()
127127
data = resp.json().get("ip", {})
@@ -185,7 +185,7 @@ def is_valid_phone(token: Optional[str], phone: str, rules: Optional[Dict[str, L
185185
resp = requests.post(
186186
f"{get_base_url()}/v1/private/secure/verify",
187187
json={"phone": phone, "plugins": plugins},
188-
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.54", "Authorization": token}
188+
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.55", "Authorization": token}
189189
)
190190
resp.raise_for_status()
191191
data = resp.json().get("phone", {})
@@ -203,6 +203,12 @@ def is_valid_phone(token: Optional[str], phone: str, rules: Optional[Dict[str, L
203203
if "FRAUD" in deny and data.get("fraud", False): reasons.append("FRAUD")
204204
if "HIGH_RISK_SCORE" in deny and data.get("plugins", {}).get("riskScore", 0) >= 80: reasons.append("HIGH_RISK_SCORE")
205205

206+
# Country block rules.
207+
for rule in rules["deny"]:
208+
if rule.startswith("COUNTRY:"):
209+
block = rule.split(":")[1] # Extract country code.
210+
if data.get("countryCode") == block: reasons.append(f"COUNTRY:{block}")
211+
206212
return {
207213
"email": phone,
208214
"allow": len(reasons) == 0,
@@ -218,7 +224,7 @@ def send_email(token, data):
218224
if not data.get("subject"): raise BadRequestError("You must provide a subject for the email to be sent.")
219225
if not data.get("html"): raise BadRequestError("You must provide HTML.")
220226
try:
221-
response = requests.post(f"{get_base_url()}/v1/private/sender/sendEmail", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.54", "Authorization": token})
227+
response = requests.post(f"{get_base_url()}/v1/private/sender/sendEmail", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.55", "Authorization": token})
222228
response.raise_for_status()
223229
return response.json()
224230
except requests.RequestException as e: raise APIError(str(e))
@@ -234,7 +240,7 @@ def get_random(token, data):
234240
if data.min < -1000000000 or data.min > 1000000000: raise BadRequestError("'min' must be an integer in the interval [-1000000000}, 1000000000].")
235241
if data.max < -1000000000 or data.max > 1000000000: raise BadRequestError("'max' must be an integer in the interval [-1000000000}, 1000000000].")
236242
try:
237-
response = requests.post(f"{get_base_url()}/v1/private/srng", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.54", "Authorization": token})
243+
response = requests.post(f"{get_base_url()}/v1/private/srng", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.55", "Authorization": token})
238244
response.raise_for_status()
239245
return response.json()
240246
except requests.RequestException as e: raise APIError(str(e))

dymoapi/branches/public.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from ..utils.decorators import deprecated
55
from ..exceptions import APIError, BadRequestError
66

7-
headers = {"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.54"}
7+
headers = {"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.55"}
88

99
def get_prayer_times(data):
1010
"""

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
setup(
44
name="dymoapi",
5-
version="0.0.54",
5+
version="0.0.55",
66
packages=find_packages(),
77
description="Dymo Python API library.",
88
long_description=open("README.md").read(),

0 commit comments

Comments
 (0)