Spaces:
Running
Running
import schedule | |
import time | |
import requests | |
import threading | |
import asyncio | |
from fastapi import FastAPI | |
from fastapi.middleware.cors import CORSMiddleware | |
from users.routes import router as users_router | |
from auth.route import router as auth_router | |
from orders.routes import order_router, meal_router | |
app = FastAPI( | |
title="SnapFeast API", | |
description="SnapFeast API for managing users, meals, and orders.", | |
version="1.0.0", | |
docs_url="/docs", | |
redoc_url="/redoc", | |
openapi_url="/openapi.json", | |
) | |
# Configure CORS | |
app.add_middleware( | |
CORSMiddleware, | |
allow_origins=["*"], # Allows all origins | |
allow_credentials=True, | |
allow_methods=["*"], # Allows all methods | |
allow_headers=["*"], # Allows all headers | |
) | |
# Include routers | |
app.include_router(users_router) | |
app.include_router(auth_router) | |
app.include_router(meal_router) | |
app.include_router(order_router) | |
def read_root(): | |
return {"message": "Welcome to SnapFeast API!"} | |
def health_check(): | |
return {"status": "ok"} | |
def ping_server(): | |
try: | |
print("Pinging server") | |
response = requests.get("https://testys-snapfeast-ai.hf.space") | |
except requests.exceptions.RequestException as e: | |
print("Server is down") | |
schedule.every(10).minutes.do(ping_server) | |
def run_schedule(): | |
while True: | |
schedule.run_pending() | |
time.sleep(1) | |
thread = threading.Thread(target=run_schedule) | |
thread.daemon = True | |
thread.start() | |
if __name__ == "__main__": | |
import uvicorn | |
uvicorn.run(app, host="0.0.0.0", port=7860, log_level="info") |