File size: 1,383 Bytes
307cacc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6532466
 
307cacc
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
import logging
from contextlib import asynccontextmanager

from fastapi import FastAPI
from loguru import logger

from ctp_slack_bot.api.routes import router
from ctp_slack_bot.core.config import settings
from ctp_slack_bot.core.logging import setup_logging
from ctp_slack_bot.tasks.scheduler import start_scheduler, stop_scheduler


@asynccontextmanager
async def lifespan(app: FastAPI):
    """
    Lifespan context manager for FastAPI application.
    Handles startup and shutdown events.
    """
    # Setup logging
    #setup_logging()
    logger.info("Starting application")
    
    # Start scheduler
    #scheduler = start_scheduler()
    #logger.info("Started scheduler")
    
    yield
    
    # Shutdown
    logger.info("Shutting down application")
    #stop_scheduler(scheduler)
    #logger.info("Stopped scheduler")


app = FastAPI(
    title="CTP Slack Bot",
    description="A Slack bot for processing and analyzing Zoom transcripts using AI",
    version="0.1.0",
    lifespan=lifespan,
)

# Include routers
app.include_router(router)


@app.get("/health")
async def health_check():
    """Health check endpoint"""
    return {"status": "healthy"}


if __name__ == "__main__":
    import uvicorn
    
    uvicorn.run(
        "main:app",
        host="localhost", #settings.API_HOST,
        port=8000, #settings.API_PORT,
        reload=True #settings.DEBUG,
    )