From 1a7466728a79576265dc508a9cd2d354e0e4217d Mon Sep 17 00:00:00 2001 From: Thigazhezhilan J Date: Sun, 29 Mar 2026 11:25:05 +0530 Subject: [PATCH] Preserve broker link on token expiry --- backend/app/broker_store.py | 14 ++++++++++++++ backend/app/routers/zerodha.py | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/backend/app/broker_store.py b/backend/app/broker_store.py index 09d15fa..ca95ec9 100644 --- a/backend/app/broker_store.py +++ b/backend/app/broker_store.py @@ -136,6 +136,20 @@ def clear_user_broker(user_id: str): cur.execute("DELETE FROM user_broker WHERE user_id = %s", (user_id,)) +def expire_user_broker_session(user_id: str): + with db_transaction() as cur: + cur.execute( + """ + UPDATE user_broker + SET connected = TRUE, + access_token = NULL, + auth_state = 'EXPIRED' + WHERE user_id = %s + """, + (user_id,), + ) + + def set_pending_broker(user_id: str, broker: str, api_key: str, api_secret: str): started_at = now_utc() with db_transaction() as cur: diff --git a/backend/app/routers/zerodha.py b/backend/app/routers/zerodha.py index 7e935a6..afd74b2 100644 --- a/backend/app/routers/zerodha.py +++ b/backend/app/routers/zerodha.py @@ -3,7 +3,7 @@ from datetime import datetime, timedelta from fastapi import APIRouter, HTTPException, Query, Request from fastapi.responses import HTMLResponse -from app.broker_store import clear_user_broker +from app.broker_store import expire_user_broker_session from app.services.auth_service import get_user_for_session from app.services.live_equity_service import ( capture_live_equity_snapshot, @@ -49,7 +49,7 @@ def _capture_request_token(request: Request, request_token: str): def _clear_broker_session(user_id: str): - clear_user_broker(user_id) + expire_user_broker_session(user_id) clear_session(user_id)