import asyncio from typing import Callable class ErrorCode: REGISTER_USER_ALREADY_EXISTS = "REGISTER_USER_ALREADY_EXISTS" LOGIN_BAD_CREDENTIALS = "LOGIN_BAD_CREDENTIALS" LOGIN_USER_NOT_VERIFIED = "LOGIN_USER_NOT_VERIFIED" RESET_PASSWORD_BAD_TOKEN = "RESET_PASSWORD_BAD_TOKEN" VERIFY_USER_BAD_TOKEN = "VERIFY_USER_BAD_TOKEN" VERIFY_USER_ALREADY_VERIFIED = "VERIFY_USER_ALREADY_VERIFIED" VERIFY_USER_TOKEN_EXPIRED = "VERIFY_USER_TOKEN_EXPIRED" UPDATE_USER_EMAIL_ALREADY_EXISTS = "UPDATE_USER_EMAIL_ALREADY_EXISTS" async def run_handler(handler: Callable, *args, **kwargs): if asyncio.iscoroutinefunction(handler): await handler(*args, **kwargs) else: handler(*args, **kwargs)