43 lines
1.0 KiB
Python
43 lines
1.0 KiB
Python
from pydantic import BaseModel, Field, field_validator
|
|
|
|
from app.schemas.user import UserRead
|
|
from app.schemas.validators import validate_username
|
|
|
|
|
|
class BootstrapRequest(BaseModel):
|
|
username: str = Field(min_length=3, max_length=64)
|
|
password: str = Field(min_length=8, max_length=128)
|
|
|
|
@field_validator("username")
|
|
@classmethod
|
|
def validate_username_value(cls, value: str) -> str:
|
|
return validate_username(value)
|
|
|
|
|
|
class LoginRequest(BaseModel):
|
|
username: str = Field(min_length=3, max_length=64)
|
|
password: str = Field(min_length=8, max_length=128)
|
|
|
|
@field_validator("username")
|
|
@classmethod
|
|
def validate_username_value(cls, value: str) -> str:
|
|
return validate_username(value)
|
|
|
|
|
|
class RefreshRequest(BaseModel):
|
|
refresh_token: str
|
|
|
|
|
|
class LogoutResponse(BaseModel):
|
|
success: bool = True
|
|
|
|
|
|
class AccessTokenResponse(BaseModel):
|
|
access_token: str
|
|
token_type: str = "bearer"
|
|
|
|
|
|
class TokenResponse(AccessTokenResponse):
|
|
refresh_token: str
|
|
user: UserRead
|