diff --git a/app.js b/app.js
index 8674820..c83b7ff 100644
--- a/app.js
+++ b/app.js
@@ -8,6 +8,7 @@ const helmet = require("helmet");
const compression = require("compression");
const unknownEndpoint = require("./middleware/unKnownEndpoint");
const { handleError } = require("./helpers/error");
+const { checkConnection } = require("./config");
const app = express();
@@ -24,6 +25,25 @@ app.use("/api", routes);
app.get("/", (req, res) =>
res.send("
HAHALO
")
);
+
+app.get("/check-db", async (req, res) => {
+ try {
+ const isConnected = await checkConnection();
+ res.json({
+ success: isConnected,
+ message: isConnected
+ ? "Koneksi database OK"
+ : "Koneksi database gagal",
+ });
+ } catch (error) {
+ res.status(500).json({
+ success: false,
+ message: "Terjadi kesalahan saat cek koneksi database",
+ error: error.message,
+ });
+ }
+});
+
app.use(unknownEndpoint);
app.use(handleError);
diff --git a/config/index.js b/config/index.js
index 2ee4f79..fe0b713 100644
--- a/config/index.js
+++ b/config/index.js
@@ -28,6 +28,18 @@ const poolPromise = new sql.ConnectionPool(config)
process.exit(1);
});
+async function checkConnection() {
+ try {
+ const pool = await poolPromise;
+ await pool.request().query('SELECT 1 AS isConnected');
+ console.log('🔍 SQL Server terkoneksi dengan baik');
+ return true;
+ } catch (error) {
+ console.error('⚠️ Gagal cek koneksi SQL Server:', error);
+ return false;
+ }
+}
+
/**
* Wrapper query (auto konversi $1 → @p1)
*/
@@ -223,6 +235,7 @@ async function generateKode(prefix, tableName, columnName) {
}
module.exports = {
+ checkConnection,
query,
buildFilterQuery,
buildStringOrIlike,