jarvis-cloud / backend /routes /otp_routes.py
Jarvis2345's picture
Squash history — remove all prior commits (secret hygiene, S4)
a31f556
Raw
History Blame Contribute Delete
1.93 kB
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
import sqlite3
import os
router = APIRouter()
def get_db_path():
if "JARVIS_APP_DATA_DIR" in os.environ:
return os.path.join(os.environ["JARVIS_APP_DATA_DIR"], "memory.db")
project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
return os.path.join(project_root, "memory.db")
class SitePayload(BaseModel):
site: str
@router.get("/trusted_sites")
async def get_trusted_sites():
try:
conn = sqlite3.connect(get_db_path())
c = conn.cursor()
c.execute("CREATE TABLE IF NOT EXISTS trusted_otp_sites (site TEXT PRIMARY KEY)")
c.execute("SELECT site FROM trusted_otp_sites")
rows = c.fetchall()
conn.close()
return {"sites": [r[0] for r in rows]}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@router.post("/trusted_sites")
async def add_trusted_site(payload: SitePayload):
try:
conn = sqlite3.connect(get_db_path())
c = conn.cursor()
c.execute("CREATE TABLE IF NOT EXISTS trusted_otp_sites (site TEXT PRIMARY KEY)")
c.execute("INSERT OR IGNORE INTO trusted_otp_sites (site) VALUES (?)", (payload.site,))
conn.commit()
conn.close()
return {"status": "ok"}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@router.delete("/trusted_sites/{site:path}")
async def remove_trusted_site(site: str):
try:
conn = sqlite3.connect(get_db_path())
c = conn.cursor()
c.execute("CREATE TABLE IF NOT EXISTS trusted_otp_sites (site TEXT PRIMARY KEY)")
c.execute("DELETE FROM trusted_otp_sites WHERE site=?", (site,))
conn.commit()
conn.close()
return {"status": "ok"}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))