Spaces:
Sleeping
Sleeping
import asyncio | |
from concurrent.futures import ThreadPoolExecutor | |
from fastapi import FastAPI, Response, Request, Header, Form, UploadFile, Body, BackgroundTasks | |
from starlette.middleware.cors import CORSMiddleware | |
# import json | |
# from load_data import get_design_data, get_design_resolutions_for_shop | |
from createlookalike import create_feature_files | |
from schemas import Shop | |
app = FastAPI() | |
app.add_middleware( | |
CORSMiddleware, | |
allow_origins=["*"], # Allows all origins | |
allow_credentials=True, | |
allow_methods=["*"], # Allows all methods | |
allow_headers=["*"], # Allows all headers | |
) | |
API_TOKEN = '34dsadfF$$%#$TGREGEFGE%Q*)(*&%' | |
executor = ThreadPoolExecutor() | |
# --------------------------------------------------------------------------- | |
# - Token auth method - | |
# --------------------------------------------------------------------------- | |
def check_auth(authorization_header): | |
if authorization_header == API_TOKEN: | |
return True | |
else: | |
return False | |
async def root(): | |
return {"message": "where are you looking for?"} | |
async def submit_async_task(background_tasks: BackgroundTasks, request: Request, response: Response, shop: Shop): | |
loop = asyncio.new_event_loop() | |
authorization_token = request.headers.get("Authorization", None) | |
check_token = True # check_auth(authorization_token) | |
if check_token: | |
task = asyncio.create_task(create_feature_files(shop)) | |
return {"message": f"shop calculation for shop {shop.id} submitted"} | |
else: | |
response.status_code = 401 | |
return response | |