ZoeApi/server.js

161 lines
7.2 KiB
JavaScript

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);