first commit

This commit is contained in:
Isuru Bimsara
2026-08-14 22:46:02 +05:30
commit 81d0e65686
132 changed files with 24398 additions and 0 deletions
+99
View File
@@ -0,0 +1,99 @@
/**
* Copyright (c) 2026 Niolla
* All rights reserved.
*
* This source code is proprietary and confidential.
* Unauthorized copying, modification, distribution, or use
* of this file, via any medium, is strictly prohibited.
*/
// app.js
const express = require("express");
const cors = require("cors");
const morgan = require("morgan");
const routes = require("./app/routes");
const cookieParser = require("cookie-parser");
const { bullBoardRouter } = require("./app/config/bullBoard.config");
const path = require("path");
const startAllCrons = require("./cron");
const db = require("./app/models");
// Test DB connection and sync models
(async () => {
try {
await db.sequelize.authenticate();
console.log("Database connected.");
await db.sequelize.sync();
console.log("Tables synced.");
// Start all cron jobs
startAllCrons();
} catch (error) {
console.error("DB error:", error);
}
})();
const app = express();
app.use(cookieParser());
// CORS configuration
const corsOptions = {
origin: process.env.FRONTEND_URL || "https://oceanic-demo.vercel.app",
methods: ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"],
allowedHeaders: ["Content-Type", "Authorization"],
credentials: true,
};
app.use(cors(corsOptions));
app.options(/.*/, cors(corsOptions));
app.use(express.json());
app.use(morgan("dev"));
app.get("/health", (req, res) => {
let dbStatus = "N/A";
let emailStatus = "N/A";
let redisStatus = "N/A";
db.sequelize
.authenticate()
.then(() => {
console.log("DB connection successful.");
dbStatus = "OK";
})
.catch((err) => {
console.error("DB connection error:", err);
res.status(500).send("Internal Server Error");
});
emailStatus = "OK";
redisStatus = "OK";
res.send({
status: "Online ✅",
database: dbStatus,
emailService: emailStatus,
redis: redisStatus,
});
});
app.use("/api", routes);
app.use(
"/Documentation",
(req, res, next) => {
if (req.path.endsWith(".md")) {
return res.status(403).send("Forbidden");
}
next();
},
express.static(path.join(__dirname, "Documentation")),
);
app.use("/admin/queues", bullBoardRouter);
module.exports = app;