refactor(models): rename request models to be more concise

This commit is contained in:
Fanilo-Nantenaina 2026-01-03 11:27:36 +03:00
parent 306c71b43d
commit 45dd517ecf
5 changed files with 24 additions and 24 deletions

12
api.py
View file

@ -1572,7 +1572,7 @@ async def envoyer_devis_signature(
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
class EmailBatchRequest(BaseModel): class EmailBatch(BaseModel):
destinataires: List[EmailStr] = Field(..., min_length=1, max_length=100) destinataires: List[EmailStr] = Field(..., min_length=1, max_length=100)
sujet: str = Field(..., min_length=1, max_length=500) sujet: str = Field(..., min_length=1, max_length=500)
corps_html: str = Field(..., min_length=1) corps_html: str = Field(..., min_length=1)
@ -1582,7 +1582,7 @@ class EmailBatchRequest(BaseModel):
@app.post("/emails/send-batch", tags=["Emails"]) @app.post("/emails/send-batch", tags=["Emails"])
async def envoyer_emails_lot( async def envoyer_emails_lot(
batch: EmailBatchRequest, session: AsyncSession = Depends(get_session) batch: EmailBatch, session: AsyncSession = Depends(get_session)
): ):
resultats = [] resultats = []
@ -1779,7 +1779,7 @@ async def lire_facture_detail(numero: str):
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
class RelanceFactureRequest(BaseModel): class RelanceFacture(BaseModel):
doc_id: str doc_id: str
message_personnalise: Optional[str] = None message_personnalise: Optional[str] = None
@ -1904,7 +1904,7 @@ templates_email_db = {
@app.post("/factures/{id}/relancer", tags=["Factures"]) @app.post("/factures/{id}/relancer", tags=["Factures"])
async def relancer_facture( async def relancer_facture(
id: str, id: str,
relance: RelanceFactureRequest, relance: RelanceFacture,
session: AsyncSession = Depends(get_session), session: AsyncSession = Depends(get_session),
): ):
try: try:
@ -2070,7 +2070,7 @@ class TemplateEmail(BaseModel):
variables_disponibles: List[str] = [] variables_disponibles: List[str] = []
class TemplatePreviewRequest(BaseModel): class TemplatePreview(BaseModel):
template_id: str template_id: str
document_id: str document_id: str
type_document: TypeDocument type_document: TypeDocument
@ -2147,7 +2147,7 @@ async def supprimer_template(template_id: str):
@app.post("/templates/emails/preview", tags=["Emails"]) @app.post("/templates/emails/preview", tags=["Emails"])
async def previsualiser_email(preview: TemplatePreviewRequest): async def previsualiser_email(preview: TemplatePreview):
if preview.template_id not in templates_email_db: if preview.template_id not in templates_email_db:
raise HTTPException(404, f"Template {preview.template_id} introuvable") raise HTTPException(404, f"Template {preview.template_id} introuvable")

View file

@ -34,7 +34,7 @@ class RegisterRequest(BaseModel):
prenom: str = Field(..., min_length=2, max_length=100) prenom: str = Field(..., min_length=2, max_length=100)
class LoginRequest(BaseModel): class Login(BaseModel):
email: EmailStr email: EmailStr
password: str password: str
@ -46,24 +46,24 @@ class TokenResponse(BaseModel):
expires_in: int = 86400 expires_in: int = 86400
class RefreshTokenRequest(BaseModel): class RefreshToken(BaseModel):
refresh_token: str refresh_token: str
class ForgotPasswordRequest(BaseModel): class ForgotPassword(BaseModel):
email: EmailStr email: EmailStr
class ResetPasswordRequest(BaseModel): class ResetPassword(BaseModel):
token: str token: str
new_password: str = Field(..., min_length=8) new_password: str = Field(..., min_length=8)
class VerifyEmailRequest(BaseModel): class VerifyEmail(BaseModel):
token: str token: str
class ResendVerificationRequest(BaseModel): class ResendVerification(BaseModel):
email: EmailStr email: EmailStr
@ -194,7 +194,7 @@ async def verify_email_get(token: str, session: AsyncSession = Depends(get_sessi
@router.post("/verify-email") @router.post("/verify-email")
async def verify_email_post( async def verify_email_post(
data: VerifyEmailRequest, session: AsyncSession = Depends(get_session) data: VerifyEmail, session: AsyncSession = Depends(get_session)
): ):
result = await session.execute( result = await session.execute(
select(User).where(User.verification_token == data.token) select(User).where(User.verification_token == data.token)
@ -228,7 +228,7 @@ async def verify_email_post(
@router.post("/resend-verification") @router.post("/resend-verification")
async def resend_verification( async def resend_verification(
data: ResendVerificationRequest, data: ResendVerification,
request: Request, request: Request,
session: AsyncSession = Depends(get_session), session: AsyncSession = Depends(get_session),
): ):
@ -259,7 +259,7 @@ async def resend_verification(
@router.post("/login", response_model=TokenResponse) @router.post("/login", response_model=TokenResponse)
async def login( async def login(
data: LoginRequest, request: Request, session: AsyncSession = Depends(get_session) data: Login, request: Request, session: AsyncSession = Depends(get_session)
): ):
ip = request.client.host if request.client else "unknown" ip = request.client.host if request.client else "unknown"
user_agent = request.headers.get("user-agent", "unknown") user_agent = request.headers.get("user-agent", "unknown")
@ -362,7 +362,7 @@ async def login(
@router.post("/refresh", response_model=TokenResponse) @router.post("/refresh", response_model=TokenResponse)
async def refresh_access_token( async def refresh_access_token(
data: RefreshTokenRequest, session: AsyncSession = Depends(get_session) data: RefreshToken, session: AsyncSession = Depends(get_session)
): ):
payload = decode_token(data.refresh_token) payload = decode_token(data.refresh_token)
if not payload or payload.get("type") != "refresh": if not payload or payload.get("type") != "refresh":
@ -417,7 +417,7 @@ async def refresh_access_token(
@router.post("/forgot-password") @router.post("/forgot-password")
async def forgot_password( async def forgot_password(
data: ForgotPasswordRequest, data: ForgotPassword,
request: Request, request: Request,
session: AsyncSession = Depends(get_session), session: AsyncSession = Depends(get_session),
): ):
@ -452,7 +452,7 @@ async def forgot_password(
@router.post("/reset-password") @router.post("/reset-password")
async def reset_password( async def reset_password(
data: ResetPasswordRequest, session: AsyncSession = Depends(get_session) data: ResetPassword, session: AsyncSession = Depends(get_session)
): ):
result = await session.execute(select(User).where(User.reset_token == data.token)) result = await session.execute(select(User).where(User.reset_token == data.token))
user = result.scalar_one_or_none() user = result.scalar_one_or_none()
@ -492,7 +492,7 @@ async def reset_password(
@router.post("/logout") @router.post("/logout")
async def logout( async def logout(
data: RefreshTokenRequest, data: RefreshToken,
session: AsyncSession = Depends(get_session), session: AsyncSession = Depends(get_session),
user: User = Depends(get_current_user), user: User = Depends(get_current_user),
): ):

View file

@ -14,7 +14,7 @@ from schemas import (
SageGatewayResponse, SageGatewayResponse,
SageGatewayList, SageGatewayList,
SageGatewayHealthCheck, SageGatewayHealthCheck,
SageGatewayTestRequest, SageGatewayTest,
SageGatewayStatsResponse, SageGatewayStatsResponse,
CurrentGatewayInfo, CurrentGatewayInfo,
) )
@ -268,7 +268,7 @@ async def check_gateway_health(
@router.post("/test", response_model=dict) @router.post("/test", response_model=dict)
async def test_gateway_config( async def test_gateway_config(
data: SageGatewayTestRequest, data: SageGatewayTest,
user: User = Depends(get_current_user), user: User = Depends(get_current_user),
session: AsyncSession = Depends(get_session), session: AsyncSession = Depends(get_session),
): ):

View file

@ -48,7 +48,7 @@ from schemas.sage.sage_gateway import (
SageGatewayResponse, SageGatewayResponse,
SageGatewayList, SageGatewayList,
SageGatewayHealthCheck, SageGatewayHealthCheck,
SageGatewayTestRequest, SageGatewayTest,
SageGatewayStatsResponse, SageGatewayStatsResponse,
CurrentGatewayInfo, CurrentGatewayInfo,
) )
@ -102,7 +102,7 @@ __all__ = [
"SageGatewayResponse", "SageGatewayResponse",
"SageGatewayList", "SageGatewayList",
"SageGatewayHealthCheck", "SageGatewayHealthCheck",
"SageGatewayTestRequest", "SageGatewayTest",
"SageGatewayStatsResponse", "SageGatewayStatsResponse",
"CurrentGatewayInfo", "CurrentGatewayInfo",
] ]

View file

@ -132,7 +132,7 @@ class SageGatewayActivateRequest(BaseModel):
gateway_id: str gateway_id: str
class SageGatewayTestRequest(BaseModel): class SageGatewayTest(BaseModel):
gateway_url: str gateway_url: str
gateway_token: str gateway_token: str