NTO-TCP-HF / app.py
ishworrsubedii's picture
add: rt_ntocto combined
1b92f63
"""
project @ NTO-TCP-HF
created @ 2024-10-28
author @ github.com/ishworrsubedii
"""
import time
from datetime import datetime, timedelta, timezone
from fastapi import FastAPI, Depends, HTTPException
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
from starlette.middleware.cors import CORSMiddleware
from starlette.responses import JSONResponse
from src.api.image_prep_api import preprocessing_router
from src.api.nto_api import nto_cto_router
from src.api.image_regeneration_api import image_regeneration_router
from src.api.batch_api import batch_router
from src.api.mannequin_to_model_api import mto_router
from src.api.nto_api import supabase
security = HTTPBearer()
async def verify_login_token(credentials: HTTPAuthorizationCredentials = Depends(security)):
try:
response = supabase.table("JewelMirrorUserLogins").select("*").eq("LoginToken",
credentials.credentials).execute()
if not response.data:
raise HTTPException(status_code=401, detail="Unauthorized: Token not found")
token_data = response.data[0]
created_at = datetime.fromisoformat(token_data["UpdatedAt"].replace("Z", "+00:00"))
current_time = datetime.now(timezone.utc)
time_difference = current_time - created_at
if time_difference <= timedelta(minutes=30):
return JSONResponse({"status": "Authorized", "message": "Token is valid"}, status_code=200)
raise HTTPException(status_code=401, detail="Unauthorized: Token expired")
except Exception as e:
print(f"Token verification error: {e}")
raise HTTPException(status_code=401, detail="Invalid token")
app = FastAPI()
app.include_router(nto_cto_router, tags=["NTO-CTO"])
app.include_router(preprocessing_router, tags=["Image-Preprocessing"])
app.include_router(image_regeneration_router, tags=["Image-Regeneration"])
time.sleep(1)
app.include_router(batch_router, tags=['Realtime'])
app.include_router(mto_router, tags=["MTO"])
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)