-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
81 lines (62 loc) · 2.35 KB
/
main.py
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import os
import uvicorn
from dotenv import load_dotenv
from fastapi import FastAPI, Depends
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from config.database import engine
from models import Base
from routers import userProfile
from routers.users import userAdditionalData
from routers.auth import get_user_info
from schemas import userPayload
from routers.codes import get_codes
from routers.stocks import core_stocks, fundamental_data
from routers.forex import forex
from routers.cryptocurrencies import crypto
from routers.commodities import commodities
from routers.economic_indicators import economic_indicators
from routers.news_insights import news_insights
from routers.technical_indicators import technical_indicators
from routers.admin import pricing
from routers import ekyc
from routers.payments import stripe
from routers.generative_ai import generative_ai
load_dotenv()
app = FastAPI()
# Define CORS settings
origins = ["*"] # Allow requests from any origin
# Add CORS middleware
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH"],
allow_headers=["*"],
)
Base.metadata.create_all(bind=engine)
@app.get("/status/health")
def health_check():
return {'status': 'Healthy'}
@app.get("/status/security-check")
async def root(user: userPayload = Depends(get_user_info)):
return {"message": f"Hello {user.username} you have the following service: {user.realm_roles}"}
app.mount("/static", StaticFiles(directory="static"), name="static")
app.include_router(userProfile.router)
app.include_router(userAdditionalData.router)
app.include_router(get_codes.router)
app.include_router(core_stocks.router)
app.include_router(fundamental_data.router)
app.include_router(forex.router)
app.include_router(crypto.router)
app.include_router(commodities.router)
app.include_router(economic_indicators.router)
app.include_router(news_insights.router)
app.include_router(technical_indicators.router)
app.include_router(ekyc.router)
app.include_router(generative_ai.router)
app.include_router(pricing.router)
app.include_router(stripe.router)
if __name__ == '__main__':
uvicorn.run("main:app", host=os.getenv("HIFI_APP_HOST", "localhost"), port=int(os.getenv("HIFI_APP_PORT", 5000)),
reload=True)