require('dotenv').config(); const express = require('express'); const app = express(); const port = process.env.PORT || 3000; const bankTransferRoutes = require('./app/modules/bank-transfer/routes/bank-transfer.route'); const eWalletRoutes = require('./app/modules/e-wallet/routes/e-wallet.route'); const notificationRoutes = require('./app/modules/notification/routes/notification.route'); const cstoreRoutes = require('./app/modules/cstore/routes/cstore.route'); const creditCardRoutes = require('./app/modules/credit-card/routes/credit-card.route'); const paylaterRoutes = require('./app/modules/paylater/routes/paylater.route'); const snapRoutes = require('./app/modules/snap/routes/snap.route'); const transactionRoutes = require('./app/modules/transaction/routes/transaction.route'); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use('/api/v1/bank-transfer', bankTransferRoutes); app.use('/api/v1/e-wallet', eWalletRoutes); app.use('/api/v1/notification', notificationRoutes); app.use('/api/v1/cstore', cstoreRoutes); app.use('/api/v1/credit-card', creditCardRoutes); app.use('/api/v1/paylater', paylaterRoutes); app.use('/api/v1/snap', snapRoutes); app.use('/api/v1/transaction', transactionRoutes); app.get('/', (req, res) => { res.send('Midtrans Gateway API is running...'); }); app.use((req, res) => { const responseHelper = require('./app/helpers/response.helper'); return responseHelper.error(res, "Endpoint tidak ditemukan", 404); }); app.use((err, req, res, next) => { const responseHelper = require('./app/helpers/response.helper'); if (err instanceof SyntaxError && err.status === 400 && 'body' in err) { return responseHelper.error(res, "Format JSON tidak valid: " + err.message, 400); } console.error("[GlobalError]", err); return responseHelper.error(res, err.message || "Terjadi kesalahan internal pada server", err.status || 500); }); app.listen(port, () => { console.log(`Server is running on port ${port}`); });