Coverage for opt/mealie/lib/python3.12/site-packages/mealie/routes/admin/admin_email.py: 86%

22 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, Header 

4 

5from mealie.routes._base import BaseAdminController, controller 

6from mealie.schema.admin.email import EmailReady, EmailSuccess, EmailTest 

7from mealie.services.email import EmailService 

8 

9router = APIRouter(prefix="/email") 

10 

11 

12@controller(router) 

13class AdminEmailController(BaseAdminController): 

14 @router.get("", response_model=EmailReady) 

15 async def check_email_config(self): 

16 """Get general application information""" 

17 return EmailReady(ready=self.settings.SMTP_ENABLE) 

18 

19 @router.post("", response_model=EmailSuccess) 

20 async def send_test_email( 

21 self, 

22 data: EmailTest, 

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

24 ): 

25 service = EmailService(locale=accept_language) 

26 status = False 

27 error = None 

28 

29 try: 

30 status = service.send_test_email(data.email) 

31 except Exception as e: 

32 self.logger.error(e) 

33 error = str(e) 

34 

35 return EmailSuccess(success=status, error=error)