refactor: streamline configuration loading and enhance admin checks
All checks were successful
CI / lint-and-test (push) Successful in 20s
All checks were successful
CI / lint-and-test (push) Successful in 20s
- Refactored the configuration loading in `config.py` to utilize a single source of truth through the `Settings` class, improving maintainability and clarity. - Introduced the `is_admin_for_telegram_user` function in `repository.py` to centralize admin checks based on usernames and phone numbers. - Updated command handlers to use the new admin check function, ensuring consistent access control across the application. - Enhanced error handling in the `error_handler` to log exceptions when sending error replies to users, improving debugging capabilities. - Improved the handling of user phone updates in `repository.py` to ensure proper normalization and validation of phone numbers.
This commit is contained in:
@@ -22,6 +22,9 @@ async def error_handler(
|
||||
"""
|
||||
logger.exception("Exception while handling an update")
|
||||
if isinstance(update, Update) and update.effective_message:
|
||||
user = getattr(update, "effective_user", None)
|
||||
lang = get_lang(user) if user else config.DEFAULT_LANGUAGE
|
||||
await update.effective_message.reply_text(t(lang, "errors.generic"))
|
||||
try:
|
||||
user = getattr(update, "effective_user", None)
|
||||
lang = get_lang(user) if user else config.DEFAULT_LANGUAGE
|
||||
await update.effective_message.reply_text(t(lang, "errors.generic"))
|
||||
except Exception:
|
||||
logger.warning("Could not send error reply to user", exc_info=True)
|
||||
|
||||
Reference in New Issue
Block a user