2021-01-21 16:09:23 +01:00
|
|
|
const { notificationAdapterRouter } = require('./routes/notificationAdapterRouter');
|
|
|
|
|
const { authInterceptor, cookieSession, adminInterceptor } = require('./security');
|
|
|
|
|
const { analyticsRouter } = require('./routes/analyticsRouter');
|
|
|
|
|
const { providerRouter } = require('./routes/providerRouter');
|
|
|
|
|
const { loginRouter } = require('./routes/loginRoute');
|
|
|
|
|
const config = require('../../conf/config.json');
|
|
|
|
|
const { userRouter } = require('./routes/userRoute');
|
|
|
|
|
const { jobRouter } = require('./routes/jobRouter');
|
2020-02-26 09:05:20 +01:00
|
|
|
const bodyParser = require('body-parser');
|
|
|
|
|
const service = require('restana')();
|
2021-01-21 16:09:23 +01:00
|
|
|
const files = require('serve-static');
|
|
|
|
|
const path = require('path');
|
|
|
|
|
|
|
|
|
|
const staticService = files(path.join(__dirname, '../../ui/public'));
|
|
|
|
|
|
|
|
|
|
const PORT = config.port || 9998;
|
2020-07-20 16:21:11 +02:00
|
|
|
|
2020-02-26 09:05:20 +01:00
|
|
|
service.use(bodyParser.json());
|
|
|
|
|
|
2021-01-21 16:09:23 +01:00
|
|
|
service.use(cookieSession());
|
2020-02-26 09:05:20 +01:00
|
|
|
|
2021-01-21 16:09:23 +01:00
|
|
|
service.use(staticService);
|
2020-02-26 09:05:20 +01:00
|
|
|
|
2021-01-21 16:09:23 +01:00
|
|
|
service.use('/api/admin', authInterceptor());
|
|
|
|
|
service.use('/api/jobs', authInterceptor());
|
|
|
|
|
|
|
|
|
|
// /admin can only be accessed when user is having admin permissions
|
|
|
|
|
service.use('/api/admin', adminInterceptor());
|
|
|
|
|
|
|
|
|
|
service.use('/api/jobs/notificationAdapter', notificationAdapterRouter);
|
|
|
|
|
service.use('/api/jobs/provider', providerRouter);
|
|
|
|
|
service.use('/api/jobs/insights', analyticsRouter);
|
|
|
|
|
service.use('/api/admin/users', userRouter);
|
|
|
|
|
service.use('/api/jobs', jobRouter);
|
|
|
|
|
|
|
|
|
|
service.use('/api/login', loginRouter);
|
2020-02-26 09:05:20 +01:00
|
|
|
|
2020-07-20 16:21:11 +02:00
|
|
|
/* eslint-disable no-console */
|
2021-01-21 16:09:23 +01:00
|
|
|
service.start(PORT).then(() => {
|
|
|
|
|
console.info(`Started API service on port ${PORT}`);
|
|
|
|
|
});
|
2020-07-20 16:21:11 +02:00
|
|
|
/* eslint-enable no-console */
|