@bitdiver/result-rest-api
Version:
Result Rest API
96 lines (73 loc) • 2.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
exports.startServer = startServer;
exports.getParameter = getParameter;
var _cors = require('cors');
var _cors2 = _interopRequireDefault(_cors);
var _express = require('express');
var _express2 = _interopRequireDefault(_express);
var _ArrangoDB = require('./ArrangoDB');
var _ArrangoDB2 = _interopRequireDefault(_ArrangoDB);
var _logAdapter = require('./logAdapter');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const app = (0, _express2.default)();
app.use((0, _cors2.default)());
const arrangoDB = new _ArrangoDB2.default();
const LOGGER = (0, _logAdapter.getLogAdapter)();
LOGGER.writeConsole = true;
app.get('/runs', async (req, res) => {
res.send((await arrangoDB.getRuns()));
});
app.get('/testcases/:runId', async (req, res) => {
res.send((await arrangoDB.getTestcases(req.params.runId)));
});
app.get('/teststeps/:testcaseId', async (req, res) => {
res.send((await arrangoDB.getTeststeps(req.params.testcaseId)));
});
app.on('close', () => {
LOGGER.logInfo('Call Server close()');
app.close();
});
app.get('/ready', (req, res) => {
res.send('OK');
});
app.get('/live', (req, res) => {
res.status(200);
res.send('OK');
});
app.get('/health', (req, res) => {
LOGGER.logInfo('/health');
res.send({ health: arrangoDB });
});
/**
* Startet die Express APP.
* @param expressPort {numbner} Der Port der Express Application
* @return app {object} Die Express app
*/
async function startServer({ expressPort } = getParameter()) {
LOGGER.logInfo('Rest Service startet at port: ' + expressPort);
// Starten des Express servers
return new _promise2.default((resolve, reject) => {
const httpServer = app.listen(expressPort, err => {
if (err) {
reject(err);
} else {
resolve({ httpServer, express: app });
}
});
});
}
/**
* Reads all the expected variables and checks that they exsist
* @returns env {object} An object with all the needed parameters
*/
function getParameter() {
const env = {
expressPort: process.env.EXPRESS_PORT || 3000
};
return env;
}