Skip to content

Commit

Permalink
Enhacement: Moved the log messages into a seperate files
Browse files Browse the repository at this point in the history
  • Loading branch information
ramsy0dev committed Feb 11, 2024
1 parent 0503f5d commit 27fbcc5
Show file tree
Hide file tree
Showing 14 changed files with 269 additions and 125 deletions.
39 changes: 23 additions & 16 deletions pufferblow_api/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,13 @@
# Base
from pufferblow_api.src.database.tables.declarative_base import Base

# Log messages
from pufferblow_api.src.logger.msgs import (
info,
errors,
debug
)

# TODO: Switch from using regular dict to return
# into using ORJSONResponse as it is much faster.
# References:
Expand Down Expand Up @@ -107,7 +114,7 @@ async def signup_new_user(
)

logger.info(
constants.NEW_USER_SIGNUP_SUCCESSFULLY(
info.INFO_NEW_USER_SIGNUP_SUCCESSFULLY(
user=user_data,
)
)
Expand Down Expand Up @@ -250,7 +257,7 @@ async def edit_users_profile_route(
# Check the status value
if status not in ["online", "offline"]:
logger.info(
constants.USER_STATUS_UPDATE_FAILED(
info.INFO_USER_STATUS_UPDATE_FAILED(
user_id=user_id,
status=status
)
Expand Down Expand Up @@ -278,7 +285,7 @@ async def edit_users_profile_route(
password=old_password
):
logger.info(
constants.UPDATE_USER_PASSWORD_FAILED(
info.INFO_UPDATE_USER_PASSWORD_FAILED(
user_id=user_id
)
)
Expand Down Expand Up @@ -341,7 +348,7 @@ async def reset_users_auth_token_route(
password=password
):
logger.info(
constants.RESET_USER_AUTH_TOKEN_FAILD(
info.INFO_RESET_USER_AUTH_TOKEN_FAILED(
user_id=user_id,
)
)
Expand All @@ -361,7 +368,7 @@ async def reset_users_auth_token_route(
suspend_time=2 # Two days
):
logger.info(
constants.AUTH_TOKEN_SUSPENSION_TIME(
info.INFO_AUTH_TOKEN_SUSPENSION_TIME(
user_id=user_id
)
)
Expand Down Expand Up @@ -631,7 +638,7 @@ async def delete_channel_route(
channel_id=channel_id
):
logger.info(
constants.CHANNEL_ID_NOT_FOUND(
info.INFO_CHANNEL_ID_NOT_FOUND(
viewer_user_id=user_id,
channel_id=channel_id
)
Expand All @@ -647,7 +654,7 @@ async def delete_channel_route(
)

logger.info(
constants.CHANNEL_DELETED(
info.INFO_CHANNEL_DELETED(
user_id=user_id,
channel_id=channel_id
)
Expand Down Expand Up @@ -740,7 +747,7 @@ async def add_user_to_private_channel_route(
channel_id=channel_id
):
logger.info(
constants.CHANNEL_ID_NOT_FOUND(
info.INFO_CHANNEL_ID_NOT_FOUND(
viewer_user_id=user_id,
channel_id=channel_id
)
Expand All @@ -757,7 +764,7 @@ async def add_user_to_private_channel_route(
):

logger.info(
constants.CHANNEL_IS_NOT_PRIVATE(
info.INFO_CHANNEL_IS_NOT_PRIVATE(
user_id=user_id,
to_add_user_id=to_add_user_id,
channel_id=channel_id
Expand Down Expand Up @@ -880,7 +887,7 @@ async def remove_user_from_channel_route(
channel_id=channel_id
):
logger.info(
constants.CHANNEL_ID_NOT_FOUND(
info.INFO_CHANNEL_ID_NOT_FOUND(
viewer_user_id=user_id,
channel_id=channel_id
)
Expand All @@ -897,7 +904,7 @@ async def remove_user_from_channel_route(
):

logger.info(
constants.CHANNEL_IS_NOT_PRIVATE(
info.INFO_CHANNEL_IS_NOT_PRIVATE(
user_id=user_id,
to_add_user_id=to_remove_user_id,
channel_id=channel_id
Expand Down Expand Up @@ -970,7 +977,7 @@ async def channel_load_messages(auth_token: str, channel_id: str, page: int | No
channel_id=channel_id
):
logger.info(
constants.CHANNEL_ID_NOT_FOUND(
info.INFO_CHANNEL_ID_NOT_FOUND(
viewer_user_id=user_id,
channel_id=channel_id
)
Expand Down Expand Up @@ -1051,7 +1058,7 @@ async def channel_send_message(auth_token: str, channel_id: str, message: str):
channel_id=channel_id
):
logger.info(
constants.CHANNEL_ID_NOT_FOUND(
info.INFO_CHANNEL_ID_NOT_FOUND(
viewer_user_id=user_id,
channel_id=channel_id
)
Expand Down Expand Up @@ -1123,7 +1130,7 @@ def channel_mark_message_as_read(auth_token: str, channel_id: str, message_id: s
channel_id=channel_id
):
logger.info(
constants.CHANNEL_ID_NOT_FOUND(
info.INFO_CHANNEL_ID_NOT_FOUND(
viewer_user_id=user_id,
channel_id=channel_id
)
Expand Down Expand Up @@ -1192,7 +1199,7 @@ def channel_delete_message(auth_token: str, channel_id: str, message_id: str):
channel_id=channel_id
):
logger.info(
constants.CHANNEL_ID_NOT_FOUND(
info.INFO_CHANNEL_ID_NOT_FOUND(
viewer_user_id=user_id,
channel_id=channel_id
)
Expand Down Expand Up @@ -1309,7 +1316,7 @@ async def channels_messages_websocket(websocket: WebSocket, auth_token: str, cha
channel_id=channel_id
):
logger.info(
constants.CHANNEL_ID_NOT_FOUND(
info.INFO_CHANNEL_ID_NOT_FOUND(
viewer_user_id=user_id,
channel_id=channel_id
)
Expand Down
57 changes: 1 addition & 56 deletions pufferblow_api/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,63 +4,8 @@
PACKAGE_NAME = "pufferblow-api"
VERSION = "0.0.1-beta"
AUTHER = "ramsy0dev"
REPO_GITHUB = "https://github.com/PufferBlow/pufferblow-api"
ORG_GITHUB = "https://github.com/PufferBlow"
REPO_GITHUB = "https://github.com/PufferBlow/pufferblow-api"

# The $HOME path
HOME = os.environ["HOME"]

# Logs messages
NEW_USER_SIGNUP_SUCCESSFULLY = lambda user: f"New user signed up successfully. User ID: '{user.user_id}'"
REQUEST_FOR_USER_PROFILE = lambda user_data, viewer_user_id: f"Requested user profile. Viewer: '{viewer_user_id}', Target: '{user_data['user_id']}', User Data: {user_data}"
REQUEST_FOR_USERS_LIST = lambda viewer_user_id, auth_token: f"Request to get the list of users by User ID: '{viewer_user_id}', auth_token: '{auth_token}'"

NEW_USER_ID_GENERATED = lambda user_id: f"Generated new user ID: '{user_id}'"

NEW_AUTH_TOKEN_GENERATED = lambda auth_token: f"Generated new authentication token: '{auth_token}'"
NEW_AUTH_TOKEN_HASHED = lambda auth_token, hashed_auth_token, salt: f"Hashed new authentication token. Auth token: '{auth_token}', Hashed token: '{hashed_auth_token}', Salt: '{salt.salt_value}'"
NEW_AUTH_TOKEN_SAVED = lambda auth_token: f"Saved new authentication token in 'auth_tokens' table: {auth_token}"

NEW_DERIVED_KEY_CREATED = lambda user, key: f"Created new derived key. User ID: '{user.user_id}', Key: '{key.key_value}'"
NEW_DERIVED_KEY_SAVED = lambda key: f"Saved new derived key in 'keys': {key.to_json()}"
DERIVED_KEY_UPDATED = lambda key: f"Derived key updated for User ID: {key.user_id}, associated_to: {key.associated_to}, New Key value: {key.key_value}"
DERIVED_KEY_DELETED = lambda key: f"Deleted derived key from 'keys': {key.to_json()}"

NEW_HASH_SALT_CREATED = lambda salt: f"Created new hash salt. Salt: {salt.salt_value}, Associated to: '{salt.associated_to}', Hashed data: '{salt.hashed_data}'"
NEW_HASH_SALT_SAVED = lambda salt: f"Saved new hash salt in 'salts': {salt.to_json()}"

NEW_PASSWORD_HASHED = lambda password, hashed_password: f"Hashed new password. Password: '{password}', Hashed password: '{hashed_password}'"

USERNAME_ENCRYPTED = lambda username, encrypted_username: f"Encrypted username. Username: '{username}', Encrypted username: '{encrypted_username}'"
USERNAME_DECRYPTED = lambda encrypted_username, decrypted_username: f"Decrypted username. Encrypted username: '{encrypted_username}', Decrypted username: '{decrypted_username}'"

VALIDATE_AUTH_TOKEN = lambda hashed_auth_token, is_valid: f"Validated authentication token. Hashed token: '{hashed_auth_token}', Valid: {is_valid}"

REQUEST_SALT_VALUE = lambda user_id, salt_value, associated_to: f"Requested salt value for hashing data. User ID: '{user_id}', Salt: {salt_value}, Associated to: '{associated_to}'"

FETCH_USERS_ID = lambda users_id: f"Fetched user IDs. User IDs: {users_id}"

FETCH_USERNAMES = lambda usernames: f"Fetched usernames. Usernames: {usernames}"

UPDATE_USERNAME = lambda user_id, new_username, old_username: f"Updated username. User ID: '{user_id}', Old username: '{old_username}', New username: '{new_username}'"

UPDATE_USER_STATUS = lambda user_id, from_status, to_status: f"Updated user status. User ID: '{user_id}', From status: '{from_status}', To status: '{to_status}'"
USER_STATUS_UPDATE_SKIPPED = lambda user_id: f"Skipped status update for User ID: '{user_id}' due to passing the same status value."
USER_STATUS_UPDATE_FAILED = lambda user_id, status: f"Failed to update the status for User ID: '{user_id}'. Provided status value not found. Status: '{status}', Accepted status values: ['online', 'offline']."

UPDATE_USER_PASSWORD = lambda user_id, hashed_new_password: f"Updated password. User ID: '{user_id}', Hashed new password: '{hashed_new_password}'"
UPDATE_USER_PASSWORD_FAILED = lambda user_id: f"Failed to update the password for User ID: '{user_id}' due to an invalid old password."

RESET_USER_AUTH_TOKEN = lambda user_id, new_hashed_auth_token: f"Reseted auth_token for User ID: '{user_id}', New hashed auth_token: '{new_hashed_auth_token}'"
RESET_USER_AUTH_TOKEN_FAILD = lambda user_id: f"Faild to reset auth_token for User ID: '{user_id}' due to the incorrect password that was passed in."
AUTH_TOKEN_SUSPENSION_TIME = lambda user_id: f"Faild to reset authentication token for User ID: {user_id}. Suspension time has not elapsed"

NEW_CHANNEL_CREATED = lambda user_id, channel_id, channel_name :f"New channel created by User ID: '{user_id}', Channel ID: '{channel_id}', Channel Name: '{channel_name}'"
CHANNEL_DELETED = lambda user_id, channel_id: f"Channel ID: '{channel_id}' deleted by Admin with User ID: '{user_id}'"
REQUESTED_CHANNEL_DATA = lambda channel_id, viewer_user_id: f"Requested data about Channel ID: '{channel_id}' by User ID: '{viewer_user_id}'."
CHANNEL_ID_NOT_FOUND = lambda channel_id, viewer_user_id: f"The provided channel ID: {channel_id} by User ID: '{viewer_user_id}' was not found."
CHANNEL_IS_NOT_PRIVATE = lambda user_id, channel_id, to_add_user_id: f"Faild to add User ID: '{to_add_user_id}' to Channel ID: '{channel_id}' by Admin User ID: '{user_id}'. Channel is not private."
NEW_USER_ADDED_TO_PRIVATE_CHANNEL = lambda user_id, channel_id, to_add_user_id: f"New User ID: '{to_add_user_id}' added to Channel ID: '{channel_id}' by Admin User ID: '{user_id}'"
USER_REMOVED_FROM_A_PRIVATE_CHANNEL = lambda user_id, channel_id, to_remove_user_id: f"User ID: '{to_remove_user_id}' was removed from Channel ID: '{channel_id}' by Admin User ID: '{user_id}'"
FAILD_TO_REMOVE_USER_FROM_CHANNEL_TARGETED_USER_IS_AN_ADMIN = lambda user_id, channel_id, to_remove_user_id: f"Admin User ID: '{user_id}' tried to remove Admin User ID: '{to_remove_user_id}' from Channel ID: '{channel_id}'"
FAILD_TO_REMOVE_USER_FROM_CHANNEL_TARGETED_USER_IS_SERVER_OWNER = lambda user_id, channel_id, to_remove_user_id: F"User ID: '{user_id}' tried to remove the server Admin ID: '{to_remove_user_id}' from Channel ID: '{channel_id}'"
13 changes: 11 additions & 2 deletions pufferblow_api/src/auth/auth_token_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,19 @@

from loguru import logger

from pufferblow_api import constants
# Hasher
from pufferblow_api.src.hasher.hasher import Hasher

# Database handler
from pufferblow_api.src.database.database_handler import DatabaseHandler

# Log messages
from pufferblow_api.src.logger.msgs import (
info,
errors,
debug
)

class AuthTokenManager (object):
""" Auth token class to manage auth tokens """
def __init__(self, database_handler: DatabaseHandler, hasher: Hasher) -> None:
Expand Down Expand Up @@ -116,7 +125,7 @@ def create_token(self) -> str:
break

logger.info(
constants.NEW_AUTH_TOKEN_GENERATED(
debug.DEBUG_NEW_AUTH_TOKEN_GENERATED(
auth_token=auth_token
)
)
Expand Down
24 changes: 19 additions & 5 deletions pufferblow_api/src/channels/channels_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,30 @@

from loguru import logger

from pufferblow_api import constants
from pufferblow_api.src.hasher.hasher import Hasher
# Models
from pufferblow_api.src.models.user_model import User
from pufferblow_api.src.models.channel_model import Channel
from pufferblow_api.src.models.encryption_key_model import EncryptionKey

# Hasher
from pufferblow_api.src.hasher.hasher import Hasher

# AuthToken manager
from pufferblow_api.src.auth.auth_token_manager import AuthTokenManager

# Database handler
from pufferblow_api.src.database.database_handler import DatabaseHandler
from pufferblow_api.src.models.encryption_key_model import EncryptionKey

# Utils
from pufferblow_api.src.utils.current_date import date_in_gmt

# Log messages
from pufferblow_api.src.logger.msgs import (
info,
errors,
debug
)

class ChannelsManager (object):
""" Channels manager class to manage channels """
def __init__(self, database_handler: DatabaseHandler, auth_token_manager: AuthTokenManager,hasher: Hasher) -> None:
Expand Down Expand Up @@ -144,7 +158,7 @@ def add_user_to_channel(self, user_id: str, to_add_user_id: str, channel_id: str
)

logger.info(
constants.NEW_USER_ADDED_TO_PRIVATE_CHANNEL(
info.INFO_NEW_USER_ADDED_TO_PRIVATE_CHANNEL(
user_id=user_id,
to_add_user_id=to_add_user_id,
channel_id=channel_id
Expand All @@ -169,7 +183,7 @@ def remove_user_from_channel(self, user_id: str, to_remove_user_id: str, channel
)

logger.info(
constants.USER_REMOVED_FROM_A_PRIVATE_CHANNEL(
info.INFO_USER_REMOVED_FROM_A_PRIVATE_CHANNEL(
user_id=user_id,
channel_id=channel_id,
to_remove_user_id=to_remove_user_id
Expand Down
Loading

0 comments on commit 27fbcc5

Please sign in to comment.