Krishna086 commited on
Commit
357303d
·
verified ·
1 Parent(s): 10e1c35

Update app/main.py

Browse files
Files changed (1) hide show
  1. app/main.py +37 -4
app/main.py CHANGED
@@ -2,6 +2,7 @@ from fastapi import FastAPI, HTTPException, Header, Request
2
  from fastapi.responses import JSONResponse, HTMLResponse
3
  from fastapi.staticfiles import StaticFiles
4
  from pydantic import BaseModel
 
5
  import sqlite3
6
  import sqlparse
7
  import os
@@ -104,20 +105,52 @@ async def create_session():
104
  sessions[session_id] = {"conn": create_session_db(), "domain": None}
105
  return {"session_id": session_id}
106
 
 
107
  @app.get("/api/databases")
108
  async def get_databases():
109
  questions_dir = os.path.join(BASE_DIR, "questions")
110
- return {"databases": [f.replace(".json", "") for f in os.listdir(questions_dir) if f.endswith(".json")] if os.path.exists(questions_dir) else []}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
 
112
  @app.post("/api/load-schema/{domain}")
113
  async def load_schema(domain: str, session_id: str = Header(...)):
114
- if session_id not in sessions: raise HTTPException(status_code=401, detail="Invalid session")
 
 
 
115
  sessions[session_id] = {"conn": create_session_db(), "domain": domain}
116
  try:
117
- sessions[session_id]["conn"].executescript(load_schema_sql(domain))
 
 
118
  sessions[session_id]["conn"].commit()
 
 
 
 
 
 
119
  except sqlite3.Error as e:
120
- close_session_db(sessions[session_id]["conn"]) # Cleanup on error
 
121
  del sessions[session_id]
122
  raise HTTPException(status_code=500, detail=f"Database error: {str(e)}")
123
  return {"message": f"Database {domain} loaded"}
 
2
  from fastapi.responses import JSONResponse, HTMLResponse
3
  from fastapi.staticfiles import StaticFiles
4
  from pydantic import BaseModel
5
+ from loguru import logger
6
  import sqlite3
7
  import sqlparse
8
  import os
 
105
  sessions[session_id] = {"conn": create_session_db(), "domain": None}
106
  return {"session_id": session_id}
107
 
108
+
109
  @app.get("/api/databases")
110
  async def get_databases():
111
  questions_dir = os.path.join(BASE_DIR, "questions")
112
+ logger.debug(f"Checking databases in directory: {questions_dir}")
113
+ if not os.path.exists(questions_dir):
114
+ logger.error(f"Questions directory not found: {questions_dir}")
115
+ return {"databases": []}
116
+ databases = [f.replace(".json", "") for f in os.listdir(questions_dir) if f.endswith(".json")]
117
+ logger.debug(f"Found databases: {databases}")
118
+ return {"databases": databases}
119
+
120
+ from loguru import logger
121
+
122
+ @app.get("/api/databases")
123
+ async def get_databases():
124
+ questions_dir = os.path.join(BASE_DIR, "questions")
125
+ logger.debug(f"Checking databases in directory: {questions_dir}")
126
+ if not os.path.exists(questions_dir):
127
+ logger.error(f"Questions directory not found: {questions_dir}")
128
+ return {"databases": []}
129
+ databases = [f.replace(".json", "") for f in os.listdir(questions_dir) if f.endswith(".json")]
130
+ logger.debug(f"Found databases: {databases}")
131
+ return {"databases": databases}
132
 
133
  @app.post("/api/load-schema/{domain}")
134
  async def load_schema(domain: str, session_id: str = Header(...)):
135
+ logger.debug(f"Loading schema for domain: {domain}, session_id: {session_id}")
136
+ if session_id not in sessions:
137
+ logger.error(f"Invalid session: {session_id}")
138
+ raise HTTPException(status_code=401, detail="Invalid session")
139
  sessions[session_id] = {"conn": create_session_db(), "domain": domain}
140
  try:
141
+ schema_sql = load_schema_sql(domain)
142
+ logger.debug(f"Schema SQL loaded for {domain}")
143
+ sessions[session_id]["conn"].executescript(schema_sql)
144
  sessions[session_id]["conn"].commit()
145
+ logger.info(f"Schema loaded successfully for {domain}")
146
+ except FileNotFoundError as e:
147
+ logger.error(f"Schema file not found: {str(e)}")
148
+ close_session_db(sessions[session_id]["conn"])
149
+ del sessions[session_id]
150
+ raise HTTPException(status_code=500, detail=str(e))
151
  except sqlite3.Error as e:
152
+ logger.error(f"Database error: {str(e)}")
153
+ close_session_db(sessions[session_id]["conn"])
154
  del sessions[session_id]
155
  raise HTTPException(status_code=500, detail=f"Database error: {str(e)}")
156
  return {"message": f"Database {domain} loaded"}