|
import logging
|
|
from fastapi import FastAPI, Request
|
|
from fastapi.responses import RedirectResponse
|
|
from fastapi.staticfiles import StaticFiles
|
|
from devplacepy.config import STATIC_DIR
|
|
from devplacepy.database import init_db
|
|
from devplacepy.templating import templates
|
|
from devplacepy.utils import get_current_user
|
|
from devplacepy.routers import auth, feed, posts, comments, projects, profile, messages, notifications, votes, avatar
|
|
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
|
|
)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
app = FastAPI(title="DevPlace")
|
|
app.mount("/static", StaticFiles(directory=str(STATIC_DIR)), name="static")
|
|
|
|
app.include_router(auth.router, prefix="/auth")
|
|
app.include_router(feed.router, prefix="/feed")
|
|
app.include_router(posts.router, prefix="/posts")
|
|
app.include_router(comments.router, prefix="/comments")
|
|
app.include_router(projects.router, prefix="/projects")
|
|
app.include_router(profile.router, prefix="/profile")
|
|
app.include_router(messages.router, prefix="/messages")
|
|
app.include_router(notifications.router, prefix="/notifications")
|
|
app.include_router(votes.router, prefix="/votes")
|
|
app.include_router(avatar.router, prefix="/avatar")
|
|
|
|
|
|
@app.on_event("startup")
|
|
async def startup():
|
|
init_db()
|
|
logger.info("DevPlace started on port 10500")
|
|
|
|
|
|
@app.get("/")
|
|
async def landing(request: Request):
|
|
user = get_current_user(request)
|
|
if user:
|
|
return RedirectResponse(url="/feed", status_code=302)
|
|
return templates.TemplateResponse("landing.html", {"request": request})
|