import { config } from "#config"; import express from "express"; import { logger } from "#logger"; import DbService from "./db/db-service.js"; const PORT = config.PORT; const app = express(); app.use(express.json()); app.set("trust proxy", true); // cookie-parser import cookieParser from "cookie-parser"; app.use(cookieParser()); // cors import cors from "cors"; app.use( cors({ credentials: true, origin: ["http://localhost:9000", "http://localhost:9001"], }), ); // файлы import path from "path"; const __dirname = path.resolve(); app.use("/files", express.static(path.join(__dirname, "files"))); import { filesUtils } from "#utils/files-utils.js"; filesUtils.createFilesDir(); // лог всех запросов app.use((req, res, next) => { logger.debug(`Запрос ${req.url}`); next(); }); logger.info("Импорт роутеров..."); // payment-webhook import paymentWebhookRouter from "./modules/client/shop/payment/payment-webhook-router.js"; app.use("/api/client/hookie-hookie/", paymentWebhookRouter); // middleware import eventCodeMiddleware from "#middlewares/event-code-middleware.js"; app.use(eventCodeMiddleware()); // роутеры // users-management import authRouter from "./modules/client/users/auth/routers/auth-router.js"; app.use("/api/auth/", authRouter); // event import cEventRouter from "./modules/client/event/c-event-router.js"; app.use("/api/client/event/", cEventRouter); // auth import authMiddleware from "#middlewares/auth-middleware.js"; app.use("/api/", authMiddleware()); // -- CLIENT -- // user import cUsersRouter from "./modules/client/users/c-users-router.js"; app.use("/api/client/users/", cUsersRouter); // pe import cPeRouter from "./modules/client/activities/participant-entities/c-pe-router.js"; app.use("/api/client/pe/", cPeRouter); // act import cActRouter from "./modules/client/activities/c-act-router.js"; app.use("/api/client/act/", cActRouter); // cart import cCartRouter from "./modules/client/shop/cart/c-cart-router.js"; app.use("/api/client/cart/", cCartRouter); // orders import cOrdersRouter from "./modules/client/shop/c-orders-router.js"; app.use("/api/client/orders/", cOrdersRouter); // events-management // import EventsRouter from "./modules/management/events-router.js"; // app.use("/api/events-management/", authMiddleware(), EventsRouter); // import sessionRouter from "./modules/user/routers/session-router.js"; // app.use("/api/session/", sessionRouter); // обработчик ошибок import errorMiddleware from "./middlewares/error-middleware.js"; import { startSchedulers } from "#services/scheduler-service.js"; app.use(errorMiddleware); // logger.info("✅ Роутеры загружены!"); const start = async () => { try { // проверка схемы БД await DbService.checkDbSchema(); logger.info("Запуск сервера..."); app.listen(PORT, () => logger.info(`🚀 Сервер запущен на порту ${PORT}`)); startSchedulers(); } catch (e) { logger.error(e); } }; start();