%PDF- %PDF-
| Direktori : /home/opti/workflow/src/ |
| Current File : /home/opti/workflow/src/app.js |
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var bodyParser = require('body-parser');
var session = require('express-session');
var flash = require('connect-flash');
var passport = require('passport');
require('./config/sequelize')
var db = require('./models');
// var con = require("./config");
//import router files
var index = require('./routes/index'),
admin = require('./routes/admin'),
sadmin = require('./routes/sadmin'),
roles = require('./routes/roles'),
document = require('./routes/document'),
usersRouter = require('./routes/users'),
authRouter = require('./routes/auth/auth'),
unitRouter = require('./routes/unit'),
certificateTypeRouter = require('./routes/certificateType'),
certificateRouter = require('./routes/certificate'),
process = require('./routes/process'),
departmentRouter = require('./routes/department'),
branchRouter = require('./routes/branch'),
regionRouter = require('./routes/region'),
structureRouter = require('./routes/structure'),
inventoryRouter = require('./routes/inventory');
accountRouter = require('./routes/account'),
organizationRouter = require('./routes/organization');
workflowRouter = require('./routes/workflow');
employeeRouter = require('./routes/employee');
notificationRouter = require('./routes/notification');
hrRouter = require('./routes/human_resources');
flowRouter = require('./routes/flow');
require('dotenv').config();
var app = express();
app.locals = require('../helper')
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(session({
secret: 'keyboard cat',
resave: true,
saveUninitialized: true,
cookie: {
secure: false,
maxAge: 1000000}
})); // session secret
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
// express messages middleware
app.use(flash());
app.use(function(req, res, next){
res.locals.messages = require("express-messages")(req, res)();
// res.locals.messages = req.session.sessionFlash;
// delete req.session.sessionFlash;
next();
});
app.use(express.static(path.join(__dirname, 'public')));
//make moment a global function available to our views
app.locals.moment = require('moment');
app.locals.numeral = require('numeral');
//global variable for all routes
//works like midlleware
//You need not send user object in your route to every view now
app.get('*', async (req, res, next) => {
res.locals.user = req.user || null;
next();
});
//to be replaced by csrf
app.locals._csrfToken = "23m4c4545-4c3xr-fc454cr4g45-xf5rg4c5vyjnonlkuybtvgc5r3"
//Use Router
app.get("/",(req,res)=>{
res.redirect('/login');
});
app.get("/index.php",(req,res)=>{
res.redirect('/login');
});
app.use('/', index);
app.use('/admin', admin);
app.use('/sadmin', sadmin);
app.use('/inventory', inventoryRouter);
app.use('/certificate_types', certificateTypeRouter);
app.use('/certificate', certificateRouter);
app.use('/roles', roles);
app.use('/document', document);
app.use('/process', process);
app.use('/branch', branchRouter);
app.use('/employee', employeeRouter);
app.use('/api/v1/', usersRouter, authRouter, departmentRouter);
//app.use('/api/v1/mobile', usersRouter, authRouter, departmentRouter);
app.use('/structure', structureRouter);
app.use('/accounts', accountRouter);
app.use('/organization', organizationRouter)
app.use('/workflow', workflowRouter)
app.use('/unit', unitRouter)
app.use('/region', regionRouter)
app.use('/employee', employeeRouter)
app.use('/notification', notificationRouter)
app.use('/hr', hrRouter)
app.use('/flow', flowRouter)
// catch 404 and forward to error handler
app.use(function(req, res, next) {
// res.send(req.url);
res.redirect('/login');
// next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
// app.listen(3000, () => {
// console.log('App listening on port http://localhost:3001 !')
// });
module.exports = app;