API-32: Basic Endpoint for RaPla-Middleware, already able to remove blockers
Jenkins Production Deployment
Jenkins Production Deployment
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
/**
|
||||
* Required External Modules and Interfaces
|
||||
*/
|
||||
import express, {Request, Response} from 'express';
|
||||
import logger from '../../middleware/logger';
|
||||
import {Guid} from 'guid-typescript';
|
||||
import * as icalgenerator from './icalgenerator/icalgenerator.service';
|
||||
|
||||
/**
|
||||
* Router Definition
|
||||
*/
|
||||
export const raPlaMiddlewareRouter = express.Router();
|
||||
|
||||
raPlaMiddlewareRouter.get('/', async (req: Request, res: Response) => {
|
||||
try {
|
||||
let user = (req.query.user ?? '').toString();
|
||||
let file = (req.query.file ?? '').toString();
|
||||
let blockers = (req.query.blockers ?? '').toString() === '1';
|
||||
let wahl = (req.query.wahl ?? '').toString();
|
||||
let pflicht = (req.query.pflicht ?? '').toString();
|
||||
|
||||
const allowedCharsRegex: RegExp = /^[a-zA-Z0-9]+$/;
|
||||
|
||||
if (user === '' || file === '') {
|
||||
res.status(400).send('Please at least provide user and file for RaPla!');
|
||||
return;
|
||||
} else if (!allowedCharsRegex.test(user) || !allowedCharsRegex.test(file)) {
|
||||
res.status(400).send('Please provide a valid user and file!');
|
||||
return;
|
||||
}
|
||||
|
||||
let resultingFile = await icalgenerator.getiCalFile(user, file, blockers, wahl, pflicht);
|
||||
|
||||
res.set({'Content-Disposition': 'attachment; filename=' + file + '.ics'});
|
||||
res.status(200).send(resultingFile);
|
||||
} catch (e) {
|
||||
let errorGuid = Guid.create().toString();
|
||||
logger.error('Error handling a request: ' + e.message, {reference: errorGuid});
|
||||
res.status(500).send({
|
||||
'status': 'PROCESSING_ERROR',
|
||||
'message': 'Internal Server Error. Try again later.',
|
||||
'reference': errorGuid
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
let electiveModules = {
|
||||
1: {name: ''},
|
||||
2: {name: ''},
|
||||
3: {name: ''},
|
||||
4: {name: ''},
|
||||
5: {name: ''},
|
||||
6: {name: ''},
|
||||
7: {name: ''}
|
||||
};
|
||||
|
||||
let profileModules = {
|
||||
1: {name: ''},
|
||||
2: {name: ''},
|
||||
3: {name: ''},
|
||||
4: {name: ''},
|
||||
5: {name: ''}
|
||||
};
|
||||
Reference in New Issue
Block a user