from app.services.crypto_service import decrypt_value from app.services.db import db_transaction def get_session(user_id: str): with db_transaction() as cur: cur.execute( """ SELECT broker, connected, access_token, api_key, user_name, broker_user_id, connected_at FROM user_broker WHERE user_id = %s LIMIT 1 """, (user_id,), ) row = cur.fetchone() if not row: return None broker, connected, access_token, api_key, user_name, broker_user_id, connected_at = row if not connected or not access_token: return None if (broker or "").strip().upper() != "GROWW": return None return { "api_key": api_key, "access_token": decrypt_value(access_token), "user_name": user_name, "broker_user_id": broker_user_id, "linked_at": connected_at, }