45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
from config.settings import settings
|
|
from fastapi import FastAPI
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
from routers import ai, auth, bible, documents, export, health, images, projects
|
|
from services.document_service import document_service
|
|
from services.project_service import project_service
|
|
|
|
app = FastAPI(title="Writer IDE API", version="0.1.0")
|
|
|
|
# CORS configuration - uses settings from .env
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=settings.CORS_ORIGINS,
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
# Include routers
|
|
app.include_router(health.router, prefix="/api")
|
|
app.include_router(auth.router, prefix="/api")
|
|
app.include_router(projects.router, prefix="/api")
|
|
app.include_router(documents.router, prefix="/api")
|
|
app.include_router(ai.router, prefix="/api")
|
|
app.include_router(bible.router, prefix="/api")
|
|
app.include_router(export.router, prefix="/api")
|
|
app.include_router(images.router, prefix="/api")
|
|
|
|
|
|
@app.on_event("startup")
|
|
async def startup_event():
|
|
"""Инициализация тестового документа в активном проекте при запуске сервера"""
|
|
# Если есть проекты, инициализируем тестовый документ в первом
|
|
all_projects = project_service.get_all_projects()
|
|
if all_projects:
|
|
default_project = all_projects[0]
|
|
document_service.initialize_test_document(
|
|
default_project.id, default_project.user_id
|
|
)
|
|
|
|
|
|
@app.get("/")
|
|
async def root():
|
|
return {"message": "Writer IDE API", "docs": "/docs"}
|