diff --git a/backend/api.py b/backend/api.py index 88162d9..3d2afdd 100644 --- a/backend/api.py +++ b/backend/api.py @@ -745,8 +745,10 @@ def imap_scan_results(): if not username: return jsonify({"error": "Missing X-User-Username header"}), 401 limit = request.args.get("limit", default=100, type=int) - history = imap_store.get_scan_history(username, limit=limit) - return jsonify({"results": history}) + page = request.args.get("page", default=1, type=int) + offset = max(0, (page - 1) * limit) + history = imap_store.get_scan_history(username, limit=limit, offset=offset) + return jsonify({"results": history, "page": page, "limit": limit}) if __name__ == "__main__": diff --git a/backend/email_connectors/imap_store.py b/backend/email_connectors/imap_store.py index b2346d9..418da0e 100644 --- a/backend/email_connectors/imap_store.py +++ b/backend/email_connectors/imap_store.py @@ -141,15 +141,15 @@ def save_scan_results(username, scanned_emails): conn.commit() -def get_scan_history(username, limit=100): +def get_scan_history(username, limit=100, offset=0): with _connection() as conn: rows = conn.execute( """ SELECT * FROM imap_scan_results WHERE username = ? ORDER BY scanned_at DESC - LIMIT ? + LIMIT ? OFFSET ? """, - (username, limit), + (username, limit, offset), ).fetchall() return [dict(row) for row in rows]