Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion notificationapi_python_server_sdk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

__author__ = """Sahand Seifi"""
__email__ = "sahand.seifi@gmail.com"
__version__ = "2.0.0"
__version__ = "2.0.1"

# Region constants
US_REGION = "https://api.notificationapi.com"
Expand Down
78 changes: 54 additions & 24 deletions notificationapi_python_server_sdk/notificationapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,14 @@ async def request(method, uri, data=None, custom_auth=None, queryStrings=None):

headers = {}
if custom_auth:
headers['Authorization'] = custom_auth
headers["Authorization"] = custom_auth
else:
headers['Authorization'] = 'Basic ' + base64.b64encode(f'{__client_id}:{__client_secret}'.encode()).decode()
headers["Authorization"] = (
"Basic "
+ base64.b64encode(
f"{__client_id}:{__client_secret}".encode()
).decode()
)

async with httpx.AsyncClient() as client:
response = await client.request(
Expand All @@ -57,15 +62,15 @@ async def request(method, uri, data=None, custom_auth=None, queryStrings=None):


async def send(params):
await request("POST", "sender", params)
return await request("POST", "sender", params)


async def retract(params):
await request("POST", "sender/retract", params)
return await request("POST", "sender/retract", params)


async def create_sub_notification(params):
await request(
return await request(
"PUT",
"notifications/%s/subNotifications/%s"
% (params["notification_id"], params["sub_notification_id"]),
Expand All @@ -74,58 +79,74 @@ async def create_sub_notification(params):


async def delete_sub_notification(params):
await request(
return await request(
"DELETE",
"notifications/%s/subNotifications/%s"
% (params["notification_id"], params["sub_notification_id"]),
)


async def update_schedule(params):
await request(
return await request(
"PATCH",
"schedule/%s"
% (params["tracking_id"]),
"schedule/%s" % (params["tracking_id"]),
params["send_request"],
)


async def delete_schedule(params):
await request(
return await request(
"DELETE",
"schedule/%s"
% (params["tracking_id"]),
"schedule/%s" % (params["tracking_id"]),
)


async def set_user_preferences(params):
await request(
return await request(
"POST",
"user_preferences/%s" % (params["userId"]),
params["userPreferences"],
)


async def delete_user_preferences(params):
user_id = params.pop('id')
user_id = params.pop("id")

hashed_user_id = hashlib.sha256((__client_secret + user_id).encode()).digest()
hashed_user_id = hashlib.sha256(
(__client_secret + user_id).encode()
).digest()
hashed_user_id_base64 = base64.b64encode(hashed_user_id).decode()

custom_auth = 'Basic ' + base64.b64encode(f'{__client_id}:{user_id}:{hashed_user_id_base64}'.encode()).decode()
custom_auth = (
"Basic "
+ base64.b64encode(
f"{__client_id}:{user_id}:{hashed_user_id_base64}".encode()
).decode()
)

await request('DELETE', f'users/{user_id}/preferences', None, custom_auth, params)
return await request(
"DELETE", f"users/{user_id}/preferences", None, custom_auth, params
)


async def identify_user(params):
user_id = params.pop('id')
user_id = params.pop("id")

hashed_user_id = hashlib.sha256((__client_secret + user_id).encode()).digest()
hashed_user_id = hashlib.sha256(
(__client_secret + user_id).encode()
).digest()
hashed_user_id_base64 = base64.b64encode(hashed_user_id).decode()

custom_auth = 'Basic ' + base64.b64encode(f'{__client_id}:{user_id}:{hashed_user_id_base64}'.encode()).decode()
custom_auth = (
"Basic "
+ base64.b64encode(
f"{__client_id}:{user_id}:{hashed_user_id_base64}".encode()
).decode()
)

await request('POST', f'users/{urllib.parse.quote(user_id)}', params, custom_auth)
return await request(
"POST", f"users/{urllib.parse.quote(user_id)}", params, custom_auth
)


async def query_logs(params):
Expand All @@ -134,8 +155,17 @@ async def query_logs(params):


async def update_in_app_notification(user_id, params):
hashed_user_id = hashlib.sha256((__client_secret + user_id).encode()).digest()
hashed_user_id = hashlib.sha256(
(__client_secret + user_id).encode()
).digest()
hashed_user_id_base64 = base64.b64encode(hashed_user_id).decode()
custom_auth = 'Basic ' + base64.b64encode(f'{__client_id}:{user_id}:{hashed_user_id_base64}'.encode()).decode()
custom_auth = (
"Basic "
+ base64.b64encode(
f"{__client_id}:{user_id}:{hashed_user_id_base64}".encode()
).decode()
)

return await request('PATCH', f'users/{user_id}/notifications/INAPP_WEB', params, custom_auth)
return await request(
"PATCH", f"users/{user_id}/notifications/INAPP_WEB", params, custom_auth
)
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 2.0.0
current_version = 2.0.1
commit = True
tag = True

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,6 @@
test_suite="tests",
tests_require=test_requirements,
url="https://github.com/notificationapi-com/notificationapi_python_server_sdk",
version="2.0.0",
version="2.0.1",
zip_safe=False,
)