user process

This commit is contained in:
bdrtr 2025-05-07 18:33:35 +03:00
parent 36da53a562
commit 842c127817
2 changed files with 101 additions and 3 deletions

View file

@ -1,10 +1,12 @@
from fastapi import APIRouter, Depends, HTTPException, status
from .models import Token, UserPublic, authenticate_user, create_access_token, UserCreate, register_user
from fastapi import APIRouter, Depends, HTTPException, status, BackgroundTasks
from .models import Token, UserPublic, authenticate_user, create_access_token, UserCreate, find_user_w_email, get_current_user, register_user, send_password_to_email, update_password_w_user
from datetime import timedelta
from typing import Annotated
from ..config import get_session_db
from fastapi.security import OAuth2PasswordRequestForm
from sqlalchemy.orm import Session
from pydantic.networks import EmailStr
router = APIRouter(
prefix="/auth",
@ -41,4 +43,33 @@ async def create_user(
return register_user(session, user)
@router.post('/password_reset')
async def password_reset(
session : Annotated[Session, Depends(get_session_db)],
email : Annotated[EmailStr, None] = None,
task: Annotated[BackgroundTasks, None] = None, # BackgroundTasks, task'ı arka planda çalıştırmak için kullanıyoruz
):
if not find_user_w_email(session, email):
return HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail="bad request",
)
task.add_task(send_password_to_email, session, email)
return {"message": "New password has been sent to your email."}
@router.post('/update_password')
async def update_password(
user: Annotated[str, Depends(get_current_user)],
session: Annotated[Session, Depends(get_session_db)],
new_password: Annotated[str, None] = None,
) -> dict:
update_password_w_user(session, user, new_password)
return {"message": "Password updated successfully."}