-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
60 lines (47 loc) · 1.94 KB
/
main.py
File metadata and controls
60 lines (47 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import asyncio
import platform
from asyncio import get_event_loop, set_event_loop
from dependency_injector.wiring import inject
from fastapi import Depends, FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware
from fastapi.security import HTTPBearer
from uvicorn import Config, Server
from core.container import Container
from database import engine
from models import models
from routers import account, auth, client, dashboard, did, order, region, role
@inject
def main():
models.Base.metadata.create_all(bind=engine)
bearer_scheme = HTTPBearer()
app = FastAPI(title="Whisl API", version="0.0.1", description="Whisl DID REST API")
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
allow_credentials=True,
)
app.include_router(auth.router)
app.include_router(client.router, dependencies=[Depends(bearer_scheme)])
app.include_router(account.router, dependencies=[Depends(bearer_scheme)])
app.include_router(role.router, dependencies=[Depends(bearer_scheme)])
app.include_router(did.router, dependencies=[Depends(bearer_scheme)])
app.include_router(order.router, dependencies=[Depends(bearer_scheme)])
app.include_router(region.router, dependencies=[Depends(bearer_scheme)])
app.include_router(dashboard.router, dependencies=[Depends(bearer_scheme)])
container = Container()
nuso_api = container.nuso_api()
@app.middleware("http")
async def add_process_time_header(request: Request, call_next):
await nuso_api.get_nuso_access_token()
response = await call_next(request)
return response
if platform.system() == "Linux":
set_event_loop(asyncio.ProactorEventLoop())
else:
set_event_loop(get_event_loop())
server = Server(config=Config(app=app, host="0.0.0.0"))
get_event_loop().run_until_complete(server.serve())
if __name__ == "__main__":
main()