nova-api/api/main.py
2023-06-28 15:21:14 +02:00

52 lines
1.1 KiB
Python

import os
import fastapi
from starlette.responses import StreamingResponse
from starlette.requests import Request
from fastapi.middleware.cors import CORSMiddleware
from dotenv import load_dotenv
import security
import transfer
load_dotenv()
app = fastapi.FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=['*'],
allow_credentials=True,
allow_methods=['*'],
allow_headers=['*']
)
@app.on_event('startup')
async def startup_event():
"""Read up the API server."""
security.enable_proxy()
security.ip_protection_check()
@app.get('/')
async def root():
"""Returns the root endpoint."""
return {
'status': 'ok',
'discord': 'https://discord.gg/85gdcd57Xr',
'github': 'https://github.com/Luna-OSS'
}
async def _reverse_proxy(request: Request):
headers = {
name: value
for name, value in target_response.headers.items()
if name.lower() not in EXCLUDED_HEADERS
}
# ...
app.add_route('/{path:path}', _reverse_proxy, ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'])