This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import re
|
||||
from datetime import datetime
|
||||
from typing import Optional, Union
|
||||
|
||||
from pydantic import BaseModel, Field, field_validator
|
||||
|
||||
@@ -81,7 +80,7 @@ class TokenPayload(BaseModel):
|
||||
username: str
|
||||
exp: datetime
|
||||
iat: datetime
|
||||
scopes: Optional[list[str]] = []
|
||||
scopes: list[str] | None = []
|
||||
|
||||
|
||||
class OAuthInput(BaseModel):
|
||||
@@ -89,7 +88,7 @@ class OAuthInput(BaseModel):
|
||||
|
||||
provider: str = Field(pattern="^(google|github|facebook)$")
|
||||
code: str
|
||||
redirect_uri: Optional[str] = None
|
||||
redirect_uri: str | None = None
|
||||
|
||||
@field_validator("provider")
|
||||
@classmethod
|
||||
@@ -105,13 +104,13 @@ class AuthResponse(BaseModel):
|
||||
"""Validation model for authentication responses"""
|
||||
|
||||
success: bool
|
||||
token: Optional[str] = None
|
||||
error: Optional[str] = None
|
||||
user: Optional[dict[str, Union[str, int, bool]]] = None
|
||||
token: str | None = None
|
||||
error: str | None = None
|
||||
user: dict[str, str | int | bool] | None = None
|
||||
|
||||
@field_validator("error")
|
||||
@classmethod
|
||||
def validate_error_if_not_success(cls, v: Optional[str], info) -> Optional[str]:
|
||||
def validate_error_if_not_success(cls, v: str | None, info) -> str | None:
|
||||
if not info.data.get("success") and not v:
|
||||
msg = "Error message required when success is False"
|
||||
raise ValueError(msg)
|
||||
@@ -119,7 +118,7 @@ class AuthResponse(BaseModel):
|
||||
|
||||
@field_validator("token")
|
||||
@classmethod
|
||||
def validate_token_if_success(cls, v: Optional[str], info) -> Optional[str]:
|
||||
def validate_token_if_success(cls, v: str | None, info) -> str | None:
|
||||
if info.data.get("success") and not v:
|
||||
msg = "Token required when success is True"
|
||||
raise ValueError(msg)
|
||||
|
||||
Reference in New Issue
Block a user