From b9bb60ac91ba5c2f234a77b6b375d99c61285f58 Mon Sep 17 00:00:00 2001 From: Vladyslav <46872670+virus231@users.noreply.github.com> Date: Wed, 17 Sep 2025 00:18:26 +0200 Subject: [PATCH] Update index.ts --- backend/api/index.ts | 66 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 2 deletions(-) diff --git a/backend/api/index.ts b/backend/api/index.ts index 1e0e40c..d3e30db 100644 --- a/backend/api/index.ts +++ b/backend/api/index.ts @@ -1,3 +1,65 @@ -import app from '../src/app'; +import cors from "cors"; +import express from "express"; +import helmet from "helmet"; +import morgan from "morgan"; +import { config } from "../src/config/config"; +import { login, register } from "../src/controllers/auth"; -export default app; \ No newline at end of file +const app = express(); + +// Security middleware +app.use(helmet()); + +// CORS configuration +app.use( + cors({ + origin: config.corsOrigin, + credentials: true, + }) +); + +// Logging middleware +app.use(morgan("combined")); + +// Body parsing middleware +app.use(express.json({ limit: "10mb" })); +app.use(express.urlencoded({ extended: true, limit: "10mb" })); + +// Health check endpoint +app.get("/api/health", (_req, res) => { + res.status(200).json({ + status: "OK", + timestamp: new Date().toISOString(), + environment: config.nodeEnv, + }); +}); + +// Auth routes +app.post("/api/auth/register", register); +app.post("/api/auth/login", login); + +// API routes +app.use("/api", (_req, res) => { + res.json({ message: "API is working" }); +}); + +// 404 handler +app.use((req, res) => { + res.status(404).json({ + error: "Route not found", + message: `Cannot ${req.method} ${req.originalUrl}`, + }); +}); + +// Global error handler +app.use((err: Error, _req: any, res: any, _next: any) => { + console.error("Error:", err); + + res.status(500).json({ + error: "Internal server error", + message: + config.nodeEnv === "development" ? err.message : "Something went wrong", + }); +}); + +export default app;