sendio/backend/app/main.py
2026-01-13 05:17:57 +02:00

51 lines
1.7 KiB
Python

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.core.config import settings
from app.api import auth, contacts, lists, templates, campaigns, imports, google, webhooks, stats, workers
import logging
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
app = FastAPI(
title="WhatsApp Campaign Manager API",
description="Production-quality API for managing WhatsApp campaigns with compliance",
version="1.0.0"
)
# CORS
app.add_middleware(
CORSMiddleware,
allow_origins=settings.cors_origins_list,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Include routers
app.include_router(auth.router, prefix="/api/auth", tags=["Authentication"])
app.include_router(contacts.router, prefix="/api/contacts", tags=["Contacts"])
app.include_router(lists.router, prefix="/api/lists", tags=["Lists"])
app.include_router(templates.router, prefix="/api/templates", tags=["Templates"])
app.include_router(campaigns.router, prefix="/api/campaigns", tags=["Campaigns"])
app.include_router(imports.router, prefix="/api/imports", tags=["Imports"])
app.include_router(google.router, prefix="/api/imports", tags=["Google OAuth"])
app.include_router(webhooks.router, prefix="/api/webhooks", tags=["Webhooks"])
app.include_router(stats.router, prefix="/api/stats", tags=["Statistics"])
app.include_router(workers.router, prefix="/api/workers", tags=["Workers"])
@app.get("/")
def root():
return {
"name": "WhatsApp Campaign Manager API",
"version": "1.0.0",
"status": "running"
}
@app.get("/health")
def health_check():
return {"status": "healthy"}