Initial commit
This commit is contained in:
42
backend/app/schemas/auth.py
Normal file
42
backend/app/schemas/auth.py
Normal file
@@ -0,0 +1,42 @@
|
||||
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
|
||||
Reference in New Issue
Block a user