LogicGoInfotechSpaces commited on
Commit
913f4d4
·
verified ·
1 Parent(s): 28125c3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -7
app.py CHANGED
@@ -165,17 +165,23 @@ async def shutdown_db():
165
  logger.info("MongoDB connection closed")
166
 
167
  # --------------------- Logging API Hits ---------------------
168
- async def log_faceswap_hit(user_email: str, status: str = "success"):
169
  global database
170
  if database is None:
171
  return
 
 
 
172
  await database.api_logs.insert_one({
173
  "user": user_email,
174
  "endpoint": "/face-swap",
175
  "status": status,
176
- "timestamp": datetime.utcnow()
 
 
177
  })
178
 
 
179
  # --------------------- Face Swap Pipeline ---------------------
180
  swap_lock = threading.Lock()
181
 
@@ -280,6 +286,7 @@ async def face_swap_api(
280
  target_category_id: str = Form(...),
281
  user_email: str = Depends(verify_firebase_token)
282
  ):
 
283
  try:
284
  src_bytes = await source.read()
285
  src_key = f"bikini-theme/source/{uuid.uuid4().hex}_{source.filename}"
@@ -316,14 +323,16 @@ async def face_swap_api(
316
  result_bytes = f.read()
317
  result_key = f"bikini-theme/result/{uuid.uuid4().hex}_enhanced.png"
318
  result_url = upload_to_spaces(result_bytes, result_key, content_type="image/png")
319
-
320
- await log_faceswap_hit(user_email, status="success")
321
 
322
  return {"result_url": result_url}
323
 
324
- except Exception as e:
325
- await log_faceswap_hit(user_email, status="error")
326
- raise HTTPException(status_code=500, detail=f"Face swap failed: {str(e)}")
 
 
327
 
328
  @fastapi_app.get("/preview/{result_key:path}")
329
  async def preview_result(result_key: str):
 
165
  logger.info("MongoDB connection closed")
166
 
167
  # --------------------- Logging API Hits ---------------------
168
+ async def log_faceswap_hit(user_email: str, status: str, start_time: datetime, end_time: datetime):
169
  global database
170
  if database is None:
171
  return
172
+
173
+ response_time_ms = (end_time - start_time).total_seconds() * 1000
174
+
175
  await database.api_logs.insert_one({
176
  "user": user_email,
177
  "endpoint": "/face-swap",
178
  "status": status,
179
+ "start_time": start_time,
180
+ "end_time": end_time,
181
+ "response_time_ms": response_time_ms
182
  })
183
 
184
+
185
  # --------------------- Face Swap Pipeline ---------------------
186
  swap_lock = threading.Lock()
187
 
 
286
  target_category_id: str = Form(...),
287
  user_email: str = Depends(verify_firebase_token)
288
  ):
289
+ start_time = datetime.utcnow()
290
  try:
291
  src_bytes = await source.read()
292
  src_key = f"bikini-theme/source/{uuid.uuid4().hex}_{source.filename}"
 
323
  result_bytes = f.read()
324
  result_key = f"bikini-theme/result/{uuid.uuid4().hex}_enhanced.png"
325
  result_url = upload_to_spaces(result_bytes, result_key, content_type="image/png")
326
+ end_time = datetime.utcnow()
327
+ await log_faceswap_hit(user_email, status="success", start_time=start_time, end_time=end_time)
328
 
329
  return {"result_url": result_url}
330
 
331
+ except Exception as e:
332
+ end_time = datetime.utcnow()
333
+ await log_faceswap_hit(user_email, status="error", start_time=start_time, end_time=end_time)
334
+ raise HTTPException(status_code=500, detail=f"Face swap failed: {str(e)}")
335
+
336
 
337
  @fastapi_app.get("/preview/{result_key:path}")
338
  async def preview_result(result_key: str):