-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
67 lines (55 loc) · 2.3 KB
/
Copy pathserver.js
File metadata and controls
67 lines (55 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
require('dotenv').config();
const app = require('express')();
const server = require('http').Server(app);
const next = require('next');
const bodyParser = require('body-parser');
// eslint-disable-next-line no-unused-vars
const { sql, sqlQuery } = require('./sql/sqlServer');
const cookieParser = require('cookie-parser');
const passport = require('./passportStrategy');
const morgan = require('morgan');
const { env, port } = require('./appConfig');
const nextApp = next({ dev: env === 'development' });
const handle = nextApp.getRequestHandler();
const scanService = require('./productScaner/scan');
const { activateAccount } = require('./utils/authHelpers');
const schedule = require('node-schedule');
const { errorHandler } = require('./middleware/errorHandler');
const websitesController = require('./controllers/api/websitesController');
const scansController = require('./controllers/api/scansController');
const authController = require('./controllers/api/authController');
const userController = require('./controllers/api/userController');
const productController = require('./controllers/api/productController');
schedule.scheduleJob({ hour: 10, minute: 1 }, () => scanService.scanProducts()); // every day, 10am
nextApp.prepare()
.then(() => {
app.use(morgan('dev'));
app.use(bodyParser.json());
app.use(cookieParser());
app.use(passport.initialize());
app.use('/api/websites', websitesController);
app.use('/api/scans', scansController);
app.use('/api/auth', authController);
app.use('/api/user', passport.authenticate('jwt', { session: false }), userController);
app.use('/api/product', productController);
app.use(errorHandler);
app.get('/login', (req, res) => {
const actualPage = '/loginPage';
nextApp.render(req, res, actualPage);
});
app.get('/auth/activateAccount/:token', async (req, res) => {
const params = {
result: await activateAccount(req.params.token),
};
const actualPage = '/activateAccount';
nextApp.render(req, res, actualPage, params);
});
app.get('/dashboard/myProducts', (req, res) => {
const actualPage = '/dashboard';
nextApp.render(req, res, actualPage);
});
app.get('*', (req, res) => handle(req, res));
server.listen(port, (err) => {
if (err) throw err;
});
});