From c1f6212b0853bd42c3a3ce6fe41d8c83f75b046f Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 5 Jun 2025 04:00:22 +0700 Subject: [PATCH] deploy vercel1 --- backend/app.js | 268 ++++++++++++++++++++++----------------------- backend/swagger.js | 4 +- 2 files changed, 136 insertions(+), 136 deletions(-) diff --git a/backend/app.js b/backend/app.js index 5c10781..d3050a1 100644 --- a/backend/app.js +++ b/backend/app.js @@ -1,86 +1,8 @@ -// const express = require('express'); -// const cors = require('cors'); -// const dotenv = require('dotenv'); -// const sequelize = require('./config/database'); -// const path = require('path'); -// const userRoutes = require('./routes/userRoutes'); -// const authRoutes = require('./routes/authRoutes'); -// const gejalaRoutes = require('./routes/gejalaRoute'); -// const hamaRoutes = require('./routes/hamaRoutes'); -// const penyakitRoutes = require('./routes/penyakitRoutes'); -// const ruleRoutes = require('./routes/ruleRoutes'); -// const ruleHamaRoutes = require('./routes/ruleHamaRoutes'); -// const diagnosaRoute = require('./routes/diagnosaRoutes'); -// const historiRoutes = require('./routes/historiRoutes'); -// const swaggerDocs = require('./swagger'); - -// dotenv.config(); - -// const app = express(); - -// app.get("/", (req, res) => { -// res.send("Backend API is running 👍"); -// }); - - -// // Middlewares -// app.use(express.json()); -// app.use(cors()); - -// // Serve gambar dari folder image_hama -// app.use('/image_hama', express.static(path.join(__dirname, 'image_hama'))); -// // Serve gambar dari folder image_penyakit -// app.use('/image_penyakit', express.static(path.join(__dirname, 'image_penyakit'))); - -// // Routes -// app.use("/api/users", userRoutes); -// app.use("/api/auth", authRoutes); -// app.use("/api/gejala", gejalaRoutes); -// app.use("/api/hama", hamaRoutes); -// app.use("/api/penyakit", penyakitRoutes); -// app.use("/api/rules_penyakit", ruleRoutes); -// app.use("/api/rules_hama", ruleHamaRoutes); -// app.use("/api/diagnosa", diagnosaRoute); -// app.use("/api/histori", historiRoutes); - - -// // Swagger Documentation -// swaggerDocs(app); // Setup Swagger UI documentation - -// const PORT = process.env.PORT || 5000; - -// // Database Initialization -// const initializeDatabase = async () => { -// try { -// await sequelize.sync({ force: false }); -// console.log('Database synced'); -// } catch (error) { -// console.error('Error syncing database:', error); -// throw error; -// } -// }; - -// // Start Server -// initializeDatabase() -// .then(() => { -// app.listen(PORT, () => { -// console.log(`Server running on port ${PORT}`); -// console.log(`Swagger UI available at http://localhost:${PORT}/api-sibayam`); -// }); -// }) -// .catch((error) => { -// console.error('Error starting the server:', error); -// process.exit(1); -// }); - - const express = require('express'); const cors = require('cors'); -const path = require('path'); const dotenv = require('dotenv'); -const swaggerUi = require('swagger-ui-express'); -const swaggerJsDoc = require('swagger-jsdoc'); - +const sequelize = require('./config/database'); +const path = require('path'); const userRoutes = require('./routes/userRoutes'); const authRoutes = require('./routes/authRoutes'); const gejalaRoutes = require('./routes/gejalaRoute'); @@ -90,72 +12,150 @@ const ruleRoutes = require('./routes/ruleRoutes'); const ruleHamaRoutes = require('./routes/ruleHamaRoutes'); const diagnosaRoute = require('./routes/diagnosaRoutes'); const historiRoutes = require('./routes/historiRoutes'); +const swaggerDocs = require('./swagger'); dotenv.config(); const app = express(); -// Swagger config -const swaggerOptions = { - swaggerDefinition: { - openapi: '3.0.0', - info: { - title: 'SIBAYAM API', - version: '1.0.0', - description: 'API documentation for SIBAYAM', - }, - servers: [ - { - url: 'https://backend-sistem-pakar-diagnosa-penya.vercel.app', - description: 'Production Server' - }, - { - url: 'http://localhost:5000', - description: 'Development Server' - } - ], - components: { - securitySchemes: { - BearerAuth: { - type: 'http', - scheme: 'bearer', - bearerFormat: 'JWT', - }, - }, - }, - }, - apis: ['./routes/*.js'], -}; +// app.get("/", (req, res) => { +// res.send("Backend API is running 👍"); +// }); -const swaggerDocs = swaggerJsDoc(swaggerOptions); -// Middleware -app.use(cors()); +// Middlewares app.use(express.json()); +app.use(cors()); -// Static image folders +// Serve gambar dari folder image_hama app.use('/image_hama', express.static(path.join(__dirname, 'image_hama'))); +// Serve gambar dari folder image_penyakit app.use('/image_penyakit', express.static(path.join(__dirname, 'image_penyakit'))); // Routes -app.get('/', (req, res) => { - res.send('Backend API is running 👍'); -}); - -app.use('/api/users', userRoutes); -app.use('/api/auth', authRoutes); -app.use('/api/gejala', gejalaRoutes); -app.use('/api/hama', hamaRoutes); -app.use('/api/penyakit', penyakitRoutes); -app.use('/api/rules_penyakit', ruleRoutes); -app.use('/api/rules_hama', ruleHamaRoutes); -app.use('/api/diagnosa', diagnosaRoute); -app.use('/api/histori', historiRoutes); - -// Swagger UI -app.use('/api-sibayam', swaggerUi.serve, swaggerUi.setup(swaggerDocs)); - -// Export for Vercel -module.exports = app; +app.use("/api/users", userRoutes); +app.use("/api/auth", authRoutes); +app.use("/api/gejala", gejalaRoutes); +app.use("/api/hama", hamaRoutes); +app.use("/api/penyakit", penyakitRoutes); +app.use("/api/rules_penyakit", ruleRoutes); +app.use("/api/rules_hama", ruleHamaRoutes); +app.use("/api/diagnosa", diagnosaRoute); +app.use("/api/histori", historiRoutes); + + +// Swagger Documentation +swaggerDocs(app); // Setup Swagger UI documentation + +const PORT = process.env.PORT || 5000; + +// Database Initialization +const initializeDatabase = async () => { + try { + await sequelize.sync({ force: false }); + console.log('Database synced'); + } catch (error) { + console.error('Error syncing database:', error); + throw error; + } +}; + +// Start Server +initializeDatabase() + .then(() => { + app.listen(PORT, () => { + console.log(`Server running on port ${PORT}`); + console.log(`Swagger UI available at http://localhost:${PORT}/api-sibayam`); + }); + }) + .catch((error) => { + console.error('Error starting the server:', error); + process.exit(1); + }); + + +// const express = require('express'); +// const cors = require('cors'); +// const path = require('path'); +// const dotenv = require('dotenv'); +// const swaggerUi = require('swagger-ui-express'); +// const swaggerJsDoc = require('swagger-jsdoc'); + +// const userRoutes = require('./routes/userRoutes'); +// const authRoutes = require('./routes/authRoutes'); +// const gejalaRoutes = require('./routes/gejalaRoute'); +// const hamaRoutes = require('./routes/hamaRoutes'); +// const penyakitRoutes = require('./routes/penyakitRoutes'); +// const ruleRoutes = require('./routes/ruleRoutes'); +// const ruleHamaRoutes = require('./routes/ruleHamaRoutes'); +// const diagnosaRoute = require('./routes/diagnosaRoutes'); +// const historiRoutes = require('./routes/historiRoutes'); + +// dotenv.config(); + +// const app = express(); + +// // Swagger config +// const swaggerOptions = { +// swaggerDefinition: { +// openapi: '3.0.0', +// info: { +// title: 'SIBAYAM API', +// version: '1.0.0', +// description: 'API documentation for SIBAYAM', +// }, +// servers: [ +// { +// url: 'https://backend-sistem-pakar-diagnosa-penya.vercel.app', +// description: 'Production Server' +// }, +// { +// url: 'http://localhost:5000', +// description: 'Development Server' +// } +// ], +// components: { +// securitySchemes: { +// BearerAuth: { +// type: 'http', +// scheme: 'bearer', +// bearerFormat: 'JWT', +// }, +// }, +// }, +// }, +// apis: ['./routes/*.js'], +// }; + +// const swaggerDocs = swaggerJsDoc(swaggerOptions); + +// // Middleware +// app.use(cors()); +// app.use(express.json()); + +// // Static image folders +// app.use('/image_hama', express.static(path.join(__dirname, 'image_hama'))); +// app.use('/image_penyakit', express.static(path.join(__dirname, 'image_penyakit'))); + +// // Routes +// app.get('/', (req, res) => { +// res.send('Backend API is running 👍'); +// }); + +// app.use('/api/users', userRoutes); +// app.use('/api/auth', authRoutes); +// app.use('/api/gejala', gejalaRoutes); +// app.use('/api/hama', hamaRoutes); +// app.use('/api/penyakit', penyakitRoutes); +// app.use('/api/rules_penyakit', ruleRoutes); +// app.use('/api/rules_hama', ruleHamaRoutes); +// app.use('/api/diagnosa', diagnosaRoute); +// app.use('/api/histori', historiRoutes); + +// // Swagger UI +// app.use('/api-sibayam', swaggerUi.serve, swaggerUi.setup(swaggerDocs)); + +// // Export for Vercel +// module.exports = app; diff --git a/backend/swagger.js b/backend/swagger.js index 4ee5ef7..7865dd0 100644 --- a/backend/swagger.js +++ b/backend/swagger.js @@ -11,8 +11,8 @@ const swaggerOptions = { }, servers: [ { - url: '/', - description: 'Local Development Server sibayam', + url: 'https://backend-sistem-pakar-diagnosa-penya.vercel.app', + description: 'Production Server' }, ], components: {