diff --git a/app/cabinet/routes/oauth.py b/app/cabinet/routes/oauth.py index e1ff3472..90863801 100644 --- a/app/cabinet/routes/oauth.py +++ b/app/cabinet/routes/oauth.py @@ -71,7 +71,9 @@ class OAuthAuthorizeResponse(BaseModel): class OAuthCallbackRequest(BaseModel): code: str = Field(..., description='Authorization code from provider') state: str = Field(..., description='CSRF state token') - campaign_slug: str | None = Field(None, min_length=1, max_length=64, pattern=r'^[a-zA-Z0-9_-]+$', description='Campaign slug from web link') + campaign_slug: str | None = Field( + None, min_length=1, max_length=64, pattern=r'^[a-zA-Z0-9_-]+$', description='Campaign slug from web link' + ) # --- Endpoints --- diff --git a/app/cabinet/schemas/auth.py b/app/cabinet/schemas/auth.py index b2aa6bd0..58f31340 100644 --- a/app/cabinet/schemas/auth.py +++ b/app/cabinet/schemas/auth.py @@ -9,7 +9,9 @@ class TelegramAuthRequest(BaseModel): """Request for Telegram WebApp initData authentication.""" init_data: str = Field(..., description='Telegram WebApp initData string') - campaign_slug: str | None = Field(None, min_length=1, max_length=64, pattern=r'^[a-zA-Z0-9_-]+$', description='Campaign slug from web link') + campaign_slug: str | None = Field( + None, min_length=1, max_length=64, pattern=r'^[a-zA-Z0-9_-]+$', description='Campaign slug from web link' + ) class TelegramWidgetAuthRequest(BaseModel): @@ -22,7 +24,9 @@ class TelegramWidgetAuthRequest(BaseModel): photo_url: str | None = Field(None, description="User's photo URL") auth_date: int = Field(..., description='Unix timestamp of authentication') hash: str = Field(..., description='Authentication hash') - campaign_slug: str | None = Field(None, min_length=1, max_length=64, pattern=r'^[a-zA-Z0-9_-]+$', description='Campaign slug from web link') + campaign_slug: str | None = Field( + None, min_length=1, max_length=64, pattern=r'^[a-zA-Z0-9_-]+$', description='Campaign slug from web link' + ) class EmailRegisterRequest(BaseModel): @@ -36,7 +40,9 @@ class EmailVerifyRequest(BaseModel): """Request to verify email with token.""" token: str = Field(..., description='Email verification token') - campaign_slug: str | None = Field(None, min_length=1, max_length=64, pattern=r'^[a-zA-Z0-9_-]+$', description='Campaign slug from web link') + campaign_slug: str | None = Field( + None, min_length=1, max_length=64, pattern=r'^[a-zA-Z0-9_-]+$', description='Campaign slug from web link' + ) class EmailLoginRequest(BaseModel): @@ -44,7 +50,9 @@ class EmailLoginRequest(BaseModel): email: EmailStr = Field(..., description='Email address') password: str = Field(..., description='Password') - campaign_slug: str | None = Field(None, min_length=1, max_length=64, pattern=r'^[a-zA-Z0-9_-]+$', description='Campaign slug from web link') + campaign_slug: str | None = Field( + None, min_length=1, max_length=64, pattern=r'^[a-zA-Z0-9_-]+$', description='Campaign slug from web link' + ) class RefreshTokenRequest(BaseModel): diff --git a/app/services/admin_notification_service.py b/app/services/admin_notification_service.py index 5d73fec4..7b13d5f1 100644 --- a/app/services/admin_notification_service.py +++ b/app/services/admin_notification_service.py @@ -1215,9 +1215,7 @@ class AdminNotificationService: """Public check for whether admin notifications are configured and active.""" return self._is_enabled() - async def send_admin_notification( - self, text: str, reply_markup: types.InlineKeyboardMarkup | None = None - ) -> bool: + async def send_admin_notification(self, text: str, reply_markup: types.InlineKeyboardMarkup | None = None) -> bool: """Send a generic notification to admin chat with optional inline keyboard.""" if not self._is_enabled(): return False