const express = require('express');
const config = require("./config");
const MainRouer = require('./router');
const ConnexionManager = require("./database/ConnexionManager");
const DatabaseDefinitions = require("./database/DatabaseDefinitions");
const logger = require('./Logger');
const path = require('path');
const cors = require('cors');
const fileUpload = require("express-fileupload");
/**
* The mail Myintranet name space
* @namespace Myintranet
*/
/**
* the main module. To execute `node index.js` to start the application in production mode.
* will load the file config.js
* @module MAIN
*/
let app = express();
app.use(express.json());
app.use(cors({}));
app.use(express.urlencoded());
app.use(express.static('www'));
app.use(express.static('www/assets'));
let cm = new ConnexionManager(config)
let db = new DatabaseDefinitions(cm.get()).getDb();
app.use((request, response, next) => {
request.db = db;
request.logger = logger;
next();
})
app.use(fileUpload({
createParentPath: true,
limits: { fileSize: 100 * 1024 * 1024 },
}))
let mainRouter = new MainRouer(db)
app.use("/api", mainRouter.get())
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'www/index.html'));
});
let prodPort = config.port || 9933;
app.listen(prodPort, () => {
console.log(`
░█▄█░█░█░▀█▀░█▀█░▀█▀░█▀▄░█▀█░█▀█░█▀▀░▀█▀
░█░█░░█░░░█░░█░█░░█░░█▀▄░█▀█░█░█░█▀▀░░█░
░▀░▀░░▀░░▀▀▀░▀░▀░░▀░░▀░▀░▀░▀░▀░▀░▀▀▀░░▀░
started at : ${new Date(Date.now()).toLocaleDateString()}
By : ayoub Hassani (d3v4pp) <ayoub@d3v4pp.fr>
port : ${prodPort}
storage : ${path.resolve(config.storageLocation)}
`)
});