feat: add ci cd files dont edit those files
This commit is contained in:
+104
@@ -0,0 +1,104 @@
|
||||
const express = require('express');
|
||||
const database = require('./database');
|
||||
const fileUpload = require('express-fileupload');
|
||||
const { isUser, isAdmin, isLoggedIn, hasPermission } = require('./authentication');
|
||||
const bodyParser = require('body-parser');
|
||||
const cronJobs = require('./plugins/cronJobs');
|
||||
const swaggerJsdoc = require("swagger-jsdoc");
|
||||
const cors = require('cors')
|
||||
const swaggerUi = require("swagger-ui-express");
|
||||
const { createAdmins } = require('./plugins/privateAdmin');
|
||||
const portals = require('./plugins/portals');
|
||||
global._ = require('lodash');
|
||||
global.lodash = require('lodash-contrib');
|
||||
global.portal = [];
|
||||
|
||||
for (const item of portals) {
|
||||
portal.push(item.value);
|
||||
}
|
||||
|
||||
// Create express instance
|
||||
const app = express();
|
||||
|
||||
const options = {
|
||||
definition: {
|
||||
openapi: "3.0.0",
|
||||
info: {
|
||||
title: "Ostandari Swagger RestFul API",
|
||||
version: "1.0.0",
|
||||
description: "API documentation",
|
||||
license: {
|
||||
name: "MIT",
|
||||
},
|
||||
},
|
||||
components: {
|
||||
securitySchemes: {
|
||||
bearerAuth: {
|
||||
type: 'http',
|
||||
in: 'header',
|
||||
name: 'Authorization',
|
||||
description: 'Bearer Token',
|
||||
scheme: 'bearer',
|
||||
bearerFormat: 'JWT',
|
||||
},
|
||||
},
|
||||
},
|
||||
security: {
|
||||
bearerAuth: [],
|
||||
},
|
||||
servers: [
|
||||
{
|
||||
url: "http://localhost:3756",
|
||||
},
|
||||
],
|
||||
},
|
||||
apis: ['./server/routes/*.js']
|
||||
};
|
||||
|
||||
const specs = swaggerJsdoc(options);
|
||||
|
||||
cronJobs();
|
||||
createAdmins();
|
||||
const corsOptions ={
|
||||
origin:'*',
|
||||
credentials:true,
|
||||
optionSuccessStatus:200,
|
||||
}
|
||||
|
||||
// Init body-parser options (inbuilt with express)
|
||||
app.use(express.json());
|
||||
app.use(express.urlencoded({ extended: true }));
|
||||
app.use(fileUpload());
|
||||
app.use(cors(corsOptions))
|
||||
app.use(
|
||||
"/v1",
|
||||
swaggerUi.serve,
|
||||
swaggerUi.setup(specs , {explorer:true})
|
||||
);
|
||||
// Require & Import API routes
|
||||
const Public = require('./routes/public');
|
||||
const admin = require('./routes/admin');
|
||||
const auth = require('./routes/auth');
|
||||
const user = require('./routes/user');
|
||||
|
||||
// Use API Routes
|
||||
app.use('/public', Public);
|
||||
app.use('/auth', auth);
|
||||
app.use('/admin', [isLoggedIn, isAdmin], admin);
|
||||
// app.use('/user', isUser, user);
|
||||
|
||||
// Error handling middleware to catch buffer issues
|
||||
app.use((err, req, res, next) => {
|
||||
if (err.code === 'ENOBUFS') {
|
||||
console.error('Buffer space error:', err);
|
||||
res.status(500).send('Server is experiencing buffer space issues.');
|
||||
} else {
|
||||
next(err);
|
||||
}
|
||||
});
|
||||
|
||||
// Export the server middleware
|
||||
module.exports = {
|
||||
path: '/api',
|
||||
handler: app
|
||||
};
|
||||
Reference in New Issue
Block a user