Add Pull Now button and provider logos to accounts page

Agent-Logs-Url: https://github.com/christianlouis/InboxConverge/sessions/0201089a-598d-4ab0-a5a3-8d2ae1120c9e

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-03-28 19:02:52 +00:00
parent 66f94e1ecb
commit fc7e09d4d6
6 changed files with 111 additions and 9 deletions
@@ -17,6 +17,7 @@ from app.models.database_models import (
AccountStatus,
SubscriptionPlan,
)
from app.workers.tasks import process_mail_account as process_mail_account_task
from app.models.schemas import (
MailAccountCreate,
MailAccountResponse,
@@ -241,6 +242,36 @@ async def toggle_mail_account(
return account
@router.post("/{account_id}/pull-now", status_code=status.HTTP_202_ACCEPTED)
async def pull_now(
account_id: int,
current_user: User = Depends(get_current_active_user),
db: AsyncSession = Depends(get_db),
):
"""Immediately queue a pull for the given mail account"""
result = await db.execute(
select(MailAccount).where(
MailAccount.id == account_id, MailAccount.user_id == current_user.id
)
)
account = result.scalar_one_or_none()
if not account:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND, detail="Mail account not found"
)
if not account.is_enabled:
raise HTTPException(
status_code=status.HTTP_409_CONFLICT,
detail="Account is disabled. Enable it before pulling.",
)
process_mail_account_task.delay(account_id)
return {"message": "Pull queued successfully"}
@router.post("/test", response_model=MailAccountTestResponse)
async def test_mail_connection(
test_request: MailAccountTestRequest,