diff options
Diffstat (limited to 'jb/main.py')
| -rw-r--r-- | jb/main.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/jb/main.py b/jb/main.py new file mode 100644 index 0000000..8c1dbed --- /dev/null +++ b/jb/main.py @@ -0,0 +1,59 @@ +from multiprocessing import Process + +from fastapi import FastAPI, Request +from fastapi.responses import HTMLResponse +from starlette.middleware.cors import CORSMiddleware +from starlette.middleware.trustedhost import TrustedHostMiddleware + +from jb.views.common import common_router +from jb.settings import BASE_HTML +from jb.config import settings + +app = FastAPI( + servers=[ + { + "url": "https://jamesbillings67.com/", + "description": "Production environment", + }, + ], + title="jb", + version="1.0.0", +) + +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +app.add_middleware(TrustedHostMiddleware, allowed_hosts=["*"]) +app.include_router(router=common_router) + + +@app.get("/robots.txt") +@app.get("/sitemap.xml") +@app.get("/favicon.ico") +def return_nothing(): + return {} + + +@app.get("/{full_path:path}") +def serve_react_app(full_path: str): + # This serves index.html for any unmatched route + # React Router will then handle the client-side routing + return HTMLResponse(BASE_HTML) + + +def schedule_tasks(): + from jb.flow.events import process_mturk_events_task, handle_pending_msgs_task + from jb.flow.tasks import refill_hits_task + + Process(target=process_mturk_events_task).start() + # Process(target=handle_pending_msgs_task).start() + Process(target=refill_hits_task).start() + + +if not settings.debug: + schedule_tasks() |
