Coverage for opt/mealie/lib/python3.12/site-packages/mealie/routes/users/forgot_password.py: 87%

15 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 03:04 +0000

1from typing import Annotated 

2 

3from fastapi import APIRouter, Depends, Header 

4from sqlalchemy.orm.session import Session 

5 

6from mealie.db.db_setup import generate_session 

7from mealie.schema.user.user_passwords import ForgotPassword, ResetPassword 

8from mealie.services.user_services.password_reset_service import PasswordResetService 

9 

10router = APIRouter(prefix="") 

11 

12 

13@router.post("/forgot-password") 

14def forgot_password( 

15 email: ForgotPassword, 

16 session: Session = Depends(generate_session), 

17 accept_language: Annotated[str | None, Header()] = None, 

18): 

19 """Sends an email with a reset link to the user""" 

20 f_service = PasswordResetService(session) 

21 return f_service.send_reset_email(email.email, accept_language) 

22 

23 

24@router.post("/reset-password") 

25def reset_password(reset_password: ResetPassword, session: Session = Depends(generate_session)): 

26 """Resets the user password""" 

27 f_service = PasswordResetService(session) 

28 return f_service.reset_password(reset_password.token, reset_password.password)