Files

80 lines
1.9 KiB
Python

import os
import logging
from contextlib import asynccontextmanager
#
from fastapi import FastAPI
from app.core.servo import get_servo
from database import test_connection
from app.modules.users.route import router as user_router
from app.modules.clients.route import router as client_router
from app.modules.branches.route import router as branches_router
#
from app.modules.coments.route import router as comments_router
from app.modules.configuration.route import router as configuration_router
#
from app.modules.suppliers.route import router as suppliers_router
from app.modules.location.route import router as location_router
from app.modules.edos.route import router as Edos_router
logging.basicConfig(level=logging.INFO,
format= "%(asctime)s - %(levelname)s - %(message)s",
datefmt= "%H:%M:%S")
logger = logging.getLogger(__name__)
@asynccontextmanager
async def lifespan(app: FastAPI):
# STARTUP
logger.info("=" * 50)
logger.info(" XMA - Xtended Module Architecture")
logger.info("=" * 50)
servo = get_servo()
await servo.start()
logger.info(f" Sistema listo | Estado: {servo.state.value.upper()} | Modo: {servo.mode.upper()}")
logger.info("=" * 50)
yield
# SHUTDOWN
logger.info(" Apagando XMA...")
await servo.stop()
logger.info(" XMA detenido correctamente")
app = FastAPI(
title="XMA - Xtended Module Architecture",
version="1.0.0",
lifespan=lifespan
)
@app.get("/healt")
async def health():
servo = get_servo()
return servo.get_status()
@app.get("/")
async def root():
return{"message": "XMA running", "status": get_servo().state.value}
app.include_router(user_router)
app.include_router(client_router)
app.include_router(branches_router)
app.include_router(comments_router)
app.include_router(configuration_router)
app.include_router(suppliers_router)
app.include_router(location_router)
app.include_router(Edos_router)