const path = require("path"); const express = require("express"); const cors = require("cors"); const app = express(); const helmet = require("helmet"); const xss = require("xss-clean"); const cookieParser = require("cookie-parser"); const compression = require("compression"); const shopRouter = require("./Routes/shopRouter"); const userRouter = require("./Routes/userRouter"); const customerRouter = require("./Routes/customerRouter"); const checkoutController = require("./Controller/checkoutController"); const AppError = require("./utils/appError"); const globalErrorHandler = require("./Controller/globalErrorHandler"); app.use( cors({ origin: [ "http://localhost:3001", "http://localhost:3002", "https://admin.wolkendama.com", "https://wolkendama.com", ], credentials: true, }) ); app.use(cookieParser()); // Data sanitization against XSS app.use(xss()); // http security app.use(helmet()); // Request compression app.use(compression()); /////////////////////////////////////////// app.use(express.static(path.join(__dirname, "public"))); app.use(express.static(__dirname, { dotfiles: "allow" })); app.post( "/webhook", express.raw({ type: "application/json" }), checkoutController.webhookCheckout ); /////////////////////////////////////////// //Routing app.use(express.json({ limit: "10kb" })); app.use("/api/v1/shop", shopRouter); // app.use("/api/v1/blog", blogRouter); app.use("/api/v1/customer", customerRouter); // app.use("/api/v1/review", reviewRouter); app.use("/api/v1/user-admin", userRouter); app.post("/api/v1/checkout", checkoutController.createCheckout); app.all("*", (req, res, next) => { next(new AppError(`Can't find ${req.originalUrl}on this server!`, 404)); }); app.use(globalErrorHandler); module.exports = app;