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

22 statements  

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

1from typing import Annotated 1a

2 

3from fastapi import APIRouter, Header 1a

4 

5from mealie.routes._base import BaseAdminController, controller 1a

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

7from mealie.services.email import EmailService 1a

8 

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

10 

11 

12@controller(router) 1a

13class AdminEmailController(BaseAdminController): 1a

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

15 async def check_email_config(self): 1a

16 """Get general application information""" 

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

18 

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

20 async def send_test_email( 1a

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)