72 lines
2.4 KiB
Python
72 lines
2.4 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"
|
|
|
|
app = FastAPI()
|
|
|
|
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"}
|
|
|