51 lines
1.7 KiB
Python
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"}
|