import express from "express"; import cors from "cors"; import dotenv from "dotenv"; dotenv.config(); const app = express(); const port = process.env.PORT || 5000; app.use(cors({ origin: process.env.FRONTEND_URL || "http://localhost:3000", credentials: true, })); app.use(express.json()); import cookieParser from "cookie-parser"; app.use(cookieParser()); import authRoutes from "./routes/auth.routes"; import portfolioRoutes from "./routes/portfolio.routes"; import testimonialRoutes from "./routes/testimonial.routes"; import publicTestimonialRoutes from "./routes/public-testimonials.routes"; import inquiryRoutes from "./routes/inquiry.routes"; import adminInquiryRoutes from "./routes/admin-inquiry.routes"; import blogRoutes from "./routes/blog.routes"; import adminBlogRoutes from "./routes/admin-blog.routes"; import uploadRoutes from "./routes/upload.routes"; import publicPortfolioRoutes from "./routes/public-portfolio.routes"; import { getCsrfToken, csrfProtection } from "./middleware/csrf"; import path from "path"; app.get("/", (req, res) => { res.send("WebServices API is running"); }); // Provide CSRF token to frontend app.get("/api/csrf-token", csrfProtection, getCsrfToken); app.use("/api/auth", authRoutes); app.use("/api/inquiries", inquiryRoutes); app.use("/api/testimonials", publicTestimonialRoutes); app.use("/api/blog", blogRoutes); app.use("/api/admin/portfolio", portfolioRoutes); app.use("/api/admin/testimonials", testimonialRoutes); app.use("/api/admin/inquiries", adminInquiryRoutes); app.use("/api/admin/blog", adminBlogRoutes); app.use("/api/portfolio", publicPortfolioRoutes); app.use("/api/upload", uploadRoutes); // Serve uploaded local files app.use("/uploads", express.static(path.join(process.cwd(), "uploads"))); app.listen(port, () => { console.log(`[server]: Server is running at http://localhost:${port}`); });