require("./helpers/config"); const express = require("express"); const https = require("https"); const http = require("http"); const fs = require("fs"); const app = express(); const portHttp = Variables("portHttp"); const portHttps = Variables("portHttps"); const cors = require("cors"); const bodyParser = require("body-parser"); const cluster = require("cluster"); const numCPUs = require("os").cpus().length; let HttpsLigado = false; var corsOptions = { origin: "*", optionsSuccessStatus: 200, }; app.use(cors(corsOptions)); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.use(function (req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT"); res.header( "Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization" ); next(); }); if (cluster.isMaster) { console.log(`Master ${process.pid} is running`); for (let i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on("exit", (worker, code, signal) => { console.log(`worker ${worker.process.pid} died`); }); } else { console.log(`Worker ${process.pid} started`); app.get("/cluster", (req, res) => { let worker = cluster.worker.id; res.send(`Running on worker with id ==> ${worker}`); }); http.createServer(app).listen(portHttp, function () { console.log("API running success"); }); if (HttpsLigado) { var httpsOptions = { key: fs.readFileSync("/etc/ca-certificates/myrobotlab_com_br.key"), cert: fs.readFileSync("/etc/ca-certificates/myrobotlab_com_br.crt"), }; https.createServer(httpsOptions, app).listen(portHttps); } } const unityController = require("./controllers/unityController")(); const courseController = require("./controllers/courseController")(); const addressController = require("./controllers/addressController")(); const classController = require("./controllers/classController")(); const sqlServerController = require("./controllers/sqlServerController")(); const productsController = require("./controllers/productsController")(); const loginController = require("./controllers/loginController")(); const exerciseController = require("./controllers/exerciseController")(); const questionController = require("./controllers/questionController")(); const answerController = require("./controllers/answerController")(); const traineeprogramController = require("./controllers/traineeprogramController")(); const traineeprogramcoursesController = require("./controllers/traineeprogramcoursesController")(); const textController = require("./controllers/textController")(); const classescontentController = require("./controllers/classescontentController")(); const videoController = require("./controllers/videoController")(); const usersController = require("./controllers/usersController")(); const emailController = require("./controllers/emailController")(); const typescourseController = require("./controllers/typescourseController")(); const migrationController = require("./controllers/migrationController")(); const slidesController = require("./controllers/slidesController")(); const conceptsController = require("./controllers/conceptsController")(); const teacherController = require("./controllers/teacherController")(); const franchiseeController = require("./controllers/franchiseeController")(); const appController = require("./controllers/appController")(); const qrController = require("./controllers/qrController")(); const curiositiesController = require("./controllers/curiositiesController")(); const barcodeController = require("./controllers/barcodeController")(); const elloController = require("./controllers/elloController")(); const fileController = require("./controllers/fileController")(); const alexaController = require("./controllers/alexaController")(); const animationsController = require("./controllers/animationsController")(); const iyrcController = require("./controllers/iyrcController")(); const chatController = require("./controllers/chatController")(); const chamadaController = require("./controllers/chamadaController")(); const holidayController = require("./controllers/holidayController")(); const charactersController = require("./controllers/charactersController")(); const visitasController = require("./controllers/visitasController")(); const chattimeController = require("./controllers/chattimeController")(); const relatorioController = require("./controllers/relatorioController")(); const configController = require("./controllers/configController")(); const listenrepeatController = require("./controllers/listenrepeatController")(); const customizeController = require("./controllers/customizeController")(); const ig40Controller = require("./controllers/ig40Controller")(); const permissoesController = require("./controllers/permissoesController")(); const agendaController = require("./controllers/agendaController")(); const studentController = require("./controllers/studentController")(); const unileverController = require("./controllers/unileverController")(); app.use("/api/units", unityController); app.use("/api/courses", courseController); app.use("/api/address", addressController); app.use("/api/classes", classController); app.use("/api/sqlserver", sqlServerController); app.use("/api/products", productsController); app.use("/api/access", loginController); app.use("/api/exercises", exerciseController); app.use("/api/questions", questionController); app.use("/api/answers", answerController); app.use("/api/products", productsController); app.use("/api/traineeprogram", traineeprogramController); app.use("/api/traineeprogramcourses", traineeprogramcoursesController); app.use("/api/text", textController); app.use("/api/classescontent", classescontentController); app.use("/api/videos", videoController); app.use("/api/email", emailController); app.use("/api/typescourse", typescourseController); app.use("/api/migration", migrationController); app.use("/api/users", usersController); app.use("/api/slides", slidesController); app.use("/api/concepts", conceptsController); app.use("/api/teacher", teacherController); app.use("/api/franchisee", franchiseeController); app.use("/api/app", appController); app.use("/api/qr", qrController); app.use("/api/curiosities", curiositiesController); app.use("/api/barcode", barcodeController); app.use("/api/ello", elloController); app.use("/api/files", fileController); app.use("/api/alexa", alexaController); app.use("/api/animations", animationsController); app.use("/api/iyrc", iyrcController); app.use("/api/chat", chatController); app.use("/api/chamadas", chamadaController); app.use("/api/holidays", holidayController); app.use("/api/characters", charactersController); app.use("/api/visitas", visitasController); app.use("/api/chattime", chattimeController); app.use("/api/relatorios", relatorioController); app.use("/api/config", configController); app.use("/api/listenrepeat", listenrepeatController); app.use("/api/customize", customizeController); app.use("/api/ig40", ig40Controller); app.use("/api/permissoes", permissoesController); app.use("/api/agenda", agendaController); app.use("/api/student", studentController); app.use("/api/unilever", unileverController);