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

15 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-11-25 15:32 +0000

1from typing import Annotated 1a

2 

3from fastapi import APIRouter, Depends, Header 1a

4from sqlalchemy.orm.session import Session 1a

5 

6from mealie.db.db_setup import generate_session 1a

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

8from mealie.services.user_services.password_reset_service import PasswordResetService 1a

9 

10router = APIRouter(prefix="") 1a

11 

12 

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

14def forgot_password( 1a

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") 1a

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

26 """Resets the user password""" 

27 f_service = PasswordResetService(session) 

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