78 lines
2.5 KiB
Python
78 lines
2.5 KiB
Python
from fastapi import FastAPI
|
|
import os
|
|
from routers import auth, shows, venues, songs, social, tours, artists, preferences, reviews, badges, nicknames, moderation, attendance, groups, users, search, performances, notifications, feed, leaderboards, stats, admin, chase, gamification, videos, musicians, sequences, verticals, canon, on_this_day, discover, bands, festivals, playlists, analytics, recommendations
|
|
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
|
|
# Feature flags - set to False to disable features
|
|
ENABLE_BUG_TRACKER = os.getenv("ENABLE_BUG_TRACKER", "true").lower() == "true"
|
|
|
|
from services.scheduler import start_scheduler
|
|
|
|
app = FastAPI()
|
|
|
|
@app.on_event("startup")
|
|
def on_startup():
|
|
start_scheduler()
|
|
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=["*"], # In production, set this to the frontend domain
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
app.include_router(auth.router)
|
|
app.include_router(shows.router)
|
|
app.include_router(venues.router)
|
|
app.include_router(songs.router)
|
|
app.include_router(social.router)
|
|
app.include_router(tours.router)
|
|
app.include_router(artists.router)
|
|
app.include_router(preferences.router)
|
|
app.include_router(reviews.router)
|
|
app.include_router(badges.router)
|
|
app.include_router(nicknames.router)
|
|
app.include_router(moderation.router)
|
|
app.include_router(attendance.router)
|
|
app.include_router(groups.router)
|
|
app.include_router(users.router)
|
|
app.include_router(search.router)
|
|
app.include_router(performances.router)
|
|
app.include_router(notifications.router)
|
|
app.include_router(feed.router)
|
|
app.include_router(leaderboards.router)
|
|
app.include_router(stats.router)
|
|
app.include_router(admin.router)
|
|
app.include_router(chase.router)
|
|
app.include_router(gamification.router)
|
|
app.include_router(videos.router)
|
|
app.include_router(musicians.router)
|
|
app.include_router(sequences.router)
|
|
app.include_router(verticals.router)
|
|
app.include_router(canon.router)
|
|
app.include_router(on_this_day.router)
|
|
app.include_router(discover.router)
|
|
app.include_router(bands.router)
|
|
app.include_router(festivals.router)
|
|
app.include_router(playlists.router)
|
|
app.include_router(analytics.router)
|
|
|
|
|
|
# Optional features - can be disabled via env vars
|
|
if ENABLE_BUG_TRACKER:
|
|
from routers import tickets
|
|
app.include_router(tickets.router)
|
|
|
|
app.include_router(recommendations.router)
|
|
|
|
@app.get("/")
|
|
def read_root():
|
|
return {"Hello": "World"}
|
|
|
|
@app.get("/healthz")
|
|
def health_check():
|
|
"""Health check endpoint for monitoring and load balancers"""
|
|
return {"status": "healthy"}
|
|
|