File: /var/www/vhosts/dial-copper-dev.2amigos.us/dialpad-copper-crm/api/main.py
"""Main module for api startup
"""
import os
import sys
from os.path import dirname
from pathlib import Path
import uvicorn
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
# Updating path relative to file to ensure local imports (only for debugging)
path_args = Path(dirname(__file__))
sys.path.append(str(path_args.parent))
from api.conf.config import ConfigWrapper, ConfigScope, set_app_scope
# Configure scope before loading modules
set_app_scope(ConfigScope.SERVER)
from api.common.iofiles import STATIC_DIR
from api.resources import contacts, auth, home, calls, deals
# Setting GDS credentials on env variable
_CONFIG = ConfigWrapper.read_config()
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = _CONFIG.gds_credentials_path
app = FastAPI()
app.include_router(home.router)
app.include_router(auth.router)
app.include_router(calls.router)
app.include_router(deals.router)
app.include_router(contacts.router)
app.mount("/", StaticFiles(directory=STATIC_DIR), name="static")
if __name__ == '__main__':
# Running locally for debug
origins = ["http://localhost", "http://localhost:8080"]
app.add_middleware(
CORSMiddleware, allow_origins=origins,
allow_credentials=True, allow_methods=["*"],
allow_headers=["*"]
)
uvicorn.run(app, host="0.0.0.0", port=5000)