mirror of
https://github.com/khoaliber/LetterFeed.git
synced 2026-03-02 13:18:27 +00:00
feat: process now button
This commit is contained in:
@@ -8,6 +8,7 @@ from app.core.imap import _test_imap_connection, get_folders
|
||||
from app.core.logging import get_logger
|
||||
from app.crud.settings import create_or_update_settings, get_settings
|
||||
from app.schemas.settings import Settings, SettingsCreate
|
||||
from app.services.email_processor import process_emails
|
||||
|
||||
logger = get_logger(__name__)
|
||||
router = APIRouter()
|
||||
@@ -71,3 +72,15 @@ def read_folders(db: Session = Depends(get_db)):
|
||||
|
||||
logger.info(f"Found {len(folders)} IMAP folders")
|
||||
return folders
|
||||
|
||||
|
||||
@router.post("/imap/process")
|
||||
def trigger_email_processing(db: Session = Depends(get_db)):
|
||||
"""Trigger the email processing manually."""
|
||||
logger.info("Request to manually trigger email processing")
|
||||
try:
|
||||
process_emails(db)
|
||||
return {"message": "Email processing triggered successfully."}
|
||||
except Exception as e:
|
||||
logger.error(f"Error triggering email processing: {e}", exc_info=True)
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
|
||||
@@ -102,6 +102,15 @@ def test_get_imap_folders(mock_imap, client: TestClient):
|
||||
assert response.json() == ["INBOX", "Processed"]
|
||||
|
||||
|
||||
@patch("app.routers.imap.process_emails")
|
||||
def test_trigger_email_processing(mock_process_emails, client: TestClient):
|
||||
"""Test triggering email processing manually."""
|
||||
response = client.post("/imap/process")
|
||||
assert response.status_code == 200
|
||||
assert response.json() == {"message": "Email processing triggered successfully."}
|
||||
mock_process_emails.assert_called_once()
|
||||
|
||||
|
||||
def test_create_newsletter(client: TestClient):
|
||||
"""Test creating a newsletter."""
|
||||
unique_email = f"newsletter_{uuid.uuid4()}@example.com"
|
||||
|
||||
Reference in New Issue
Block a user