%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/opti/workflow/src/
Upload File :
Create Path :
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;

Zerion Mini Shell 1.0