69 lines
2.2 KiB
JavaScript
69 lines
2.2 KiB
JavaScript
require("dotenv").config();
|
|
const express = require("express");
|
|
const cors = require("cors");
|
|
const path = require("path");
|
|
const { connectDB } = require("./config/db");
|
|
const passport = require("./config/passport");
|
|
const socialRoutes = require("./src/routes/social.routes");
|
|
const authRoutes = require("./src/routes/auth.routes");
|
|
const paymentRoutes = require("./src/routes/payment.routes");
|
|
const userRoutes = require("./src/routes/user.routes");
|
|
const dmWebhookRoutes = require("./src/routes/dm_webhook.routes");
|
|
const dmMessagesRoutes = require("./src/routes/dm_messages.routes");
|
|
const { captureDmRawBody } = require("./src/middlewares/dm_rawBody.middleware");
|
|
const app = express();
|
|
const PORT = process.env.PORT || 7002;
|
|
|
|
// Request Logger
|
|
app.use((req, res, next) => {
|
|
console.log(`[REQUEST] ${req.method} ${req.url}`);
|
|
next();
|
|
});
|
|
|
|
// ------------------ Connect DB ------------------
|
|
connectDB()
|
|
.then(() => console.log("✅ Database connected successfully"))
|
|
.catch((err) => console.error("❌ Database connection failed:", err));
|
|
|
|
// ------------------ CORS ------------------
|
|
app.use(
|
|
cors({
|
|
origin: ["http://localhost:3500", "https://devapp.socialbuddy.co"],
|
|
credentials: true,
|
|
})
|
|
);
|
|
|
|
// ⚠ STRIPE WEBHOOK MUST USE RAW BODY ⚠
|
|
app.use(
|
|
"/api/payment/webhook",
|
|
express.raw({ type: "application/json" })
|
|
);
|
|
|
|
// Capture raw body for DM webhook before JSON parsing
|
|
app.use(captureDmRawBody);
|
|
|
|
// ------------------ Body Parser (After Webhook) ------------------
|
|
app.use(express.json());
|
|
app.use(express.urlencoded({ extended: true }));
|
|
|
|
// ------------------ Static Files ------------------
|
|
app.use(express.static(path.join(__dirname, "public")));
|
|
|
|
//passport
|
|
app.use(passport.initialize());
|
|
|
|
// ------------------ Routes ------------------
|
|
app.use("/api/social", socialRoutes);
|
|
app.use("/api/auth", authRoutes);
|
|
app.use("/api/users", userRoutes);
|
|
app.use("/api/payment", paymentRoutes);
|
|
app.use("/api/dm/webhook", dmWebhookRoutes);
|
|
app.use("/api/dm/messages", dmMessagesRoutes);
|
|
|
|
app.get("/", (_req, res) => {
|
|
res.send("SocialBuddy backend is running...");
|
|
});
|
|
|
|
// ------------------ Start Server ------------------
|
|
app.listen(PORT, () => console.log(`🚀 Server running on port ${PORT}`));
|