Commit 5717ff16 authored by Vadym Gidulian's avatar Vadym Gidulian

Merge branch 'dev'

parents abf68b72 e57445b0
...@@ -5,11 +5,11 @@ ...@@ -5,11 +5,11 @@
"dependencies": { "dependencies": {
"axios": "^0.18.0", "axios": "^0.18.0",
"express": "^4.16.4", "express": "^4.16.4",
"mongodb": "^3.1.13", "mongodb": "^3.2.3",
"response-time": "^2.3.2", "response-time": "^2.3.2",
"@gviagroup/seqid-gen-api": "^1.0.0" "@gviagroup/seqid-gen-api": "^1.0.0"
}, },
"devDependencies": { "devDependencies": {
"nodemon": "^1.18.9" "nodemon": "^1.18.11"
} }
} }
...@@ -20,7 +20,9 @@ module.exports = { ...@@ -20,7 +20,9 @@ module.exports = {
await requestValidator(req, res, _next); await requestValidator(req, res, _next);
if (nextWatcher.wasCalled) return nextWatcher.doNext(); if (nextWatcher.wasCalled) return nextWatcher.doNext();
} catch (e) { // Probably bad request } catch (e) { // Probably bad request
return res.status(400).send(e.message); return res.status(400)
.set('Content-Type', 'text/plain')
.send(e.message);
} }
} }
...@@ -30,7 +32,9 @@ module.exports = { ...@@ -30,7 +32,9 @@ module.exports = {
if (nextWatcher.wasCalled) return nextWatcher.doNext(); if (nextWatcher.wasCalled) return nextWatcher.doNext();
} catch (e) { // Operation error } catch (e) { // Operation error
const code = e.code || (e.response && e.response.code); const code = e.code || (e.response && e.response.code);
if (/^4\d\d/.test(code)) return res.status(code).send(e.message); if (/^4\d\d/.test(code)) return res.status(code)
.set('Content-Type', 'text/plain')
.send(e.message);
return next(e); return next(e);
} }
...@@ -45,9 +49,12 @@ module.exports = { ...@@ -45,9 +49,12 @@ module.exports = {
} }
} }
if (!response && !res[IS_EMPTY]) return res.status(404).send(response); if (!response && !res[IS_EMPTY]) return res.status(404).send();
res.status(res.statusCode || 200).send(response); if (res[IS_EMPTY] || [204, 304].includes(res.statusCode)) response = null;
res.status(res.statusCode || 200)
.send((typeof response === 'number') ? String(response) : response);
} }
}, },
......
'use strict'; 'use strict';
const grace = require('./grace'); const {checkEnvironmentVariables} = require('./util');
const {createError, logError, logInfo, logWarn} = require('./log');
['MONGODB_URI', 'SEQID_GEN_API'].forEach(varname => { checkEnvironmentVariables('MONGODB_URI', 'SEQID_GEN_API');
if (!process.env[varname]) {
logError(`Environment variable ${varname} is not defined!`);
grace.shutdown(1);
}
});
const {MongoClient} = require('mongodb'); const {MongoClient} = require('mongodb');
const SeqidGenApi = require('@gviagroup/seqid-gen-api'); const SeqidGenApi = require('@gviagroup/seqid-gen-api');
const grace = require('./grace');
const {createError, logError, logInfo, logWarn} = require('./log');
let mongoClient = null; let mongoClient = null;
const seqidGen = new SeqidGenApi(process.env.SEQID_GEN_API); const seqidGen = new SeqidGenApi(process.env.SEQID_GEN_API);
......
...@@ -42,7 +42,7 @@ module.exports = { ...@@ -42,7 +42,7 @@ module.exports = {
async shutdown(code) { async shutdown(code) {
logInfo('Server is shutting down gracefully...'); logInfo('Server is shutting down gracefully...');
await this.handleShutdown(); await module.exports.handleShutdown();
process.exit(code || 0); process.exit(code || 0);
} }
......
'use strict'; 'use strict';
const {shutdown} = require('./grace');
const {logError} = require('./log');
module.exports = { module.exports = {
checkEnvironmentVariables(...varNames) {
for (const varName of varNames) {
if (!process.env[varName]) {
logError(`Environment variable ${varName} is not set!`);
shutdown(1);
}
}
}
}; };
...@@ -191,10 +191,10 @@ braces@^2.3.1, braces@^2.3.2: ...@@ -191,10 +191,10 @@ braces@^2.3.1, braces@^2.3.2:
split-string "^3.0.2" split-string "^3.0.2"
to-regex "^3.0.1" to-regex "^3.0.1"
bson@^1.1.0: bson@^1.1.1:
version "1.1.0" version "1.1.1"
resolved "https://npm.gvia.group/bson/-/bson-1.1.0.tgz#bee57d1fb6a87713471af4e32bcae36de814b5b0" resolved "https://npm.gvia.group/bson/-/bson-1.1.1.tgz#4330f5e99104c4e751e7351859e2d408279f2f13"
integrity sha512-9Aeai9TacfNtWXOYarkFJRW2CWo+dRon+fuLZYJmvLV3+MiUp0bEI6IAZfXEIg7/Pl/7IWlLaDnhzTsD81etQA== integrity sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg==
bytes@3.0.0: bytes@3.0.0:
version "3.0.0" version "3.0.0"
...@@ -235,10 +235,10 @@ chalk@^2.0.1: ...@@ -235,10 +235,10 @@ chalk@^2.0.1:
escape-string-regexp "^1.0.5" escape-string-regexp "^1.0.5"
supports-color "^5.3.0" supports-color "^5.3.0"
chokidar@^2.0.4: chokidar@^2.1.5:
version "2.1.0" version "2.1.5"
resolved "https://npm.gvia.group/chokidar/-/chokidar-2.1.0.tgz#5fcb70d0b28ebe0867eb0f09d5f6a08f29a1efa0" resolved "https://npm.gvia.group/chokidar/-/chokidar-2.1.5.tgz#0ae8434d962281a5f56c72869e79cb6d9d86ad4d"
integrity sha512-5t6G2SH8eO6lCvYOoUpaRnF5Qfd//gd7qJAkwRUw9qlGVkiQ13uwQngqbWWaurOsaAm9+kUGbITADxt6H0XFNQ== integrity sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==
dependencies: dependencies:
anymatch "^2.0.0" anymatch "^2.0.0"
async-each "^1.0.1" async-each "^1.0.1"
...@@ -250,7 +250,7 @@ chokidar@^2.0.4: ...@@ -250,7 +250,7 @@ chokidar@^2.0.4:
normalize-path "^3.0.0" normalize-path "^3.0.0"
path-is-absolute "^1.0.0" path-is-absolute "^1.0.0"
readdirp "^2.2.1" readdirp "^2.2.1"
upath "^1.1.0" upath "^1.1.1"
optionalDependencies: optionalDependencies:
fsevents "^1.2.7" fsevents "^1.2.7"
...@@ -1193,23 +1193,23 @@ mkdirp@^0.5.0, mkdirp@^0.5.1: ...@@ -1193,23 +1193,23 @@ mkdirp@^0.5.0, mkdirp@^0.5.1:
dependencies: dependencies:
minimist "0.0.8" minimist "0.0.8"
mongodb-core@3.1.11: mongodb-core@^3.2.3:
version "3.1.11" version "3.2.3"
resolved "https://npm.gvia.group/mongodb-core/-/mongodb-core-3.1.11.tgz#b253038dbb4d7329f3d1c2ee5400bb0c9221fde5" resolved "https://npm.gvia.group/mongodb-core/-/mongodb-core-3.2.3.tgz#eb9bcb876f169f5843fd135f7f7686dbac0e9e34"
integrity sha512-rD2US2s5qk/ckbiiGFHeu+yKYDXdJ1G87F6CG3YdaZpzdOm5zpoAZd/EKbPmFO6cQZ+XVXBXBJ660sSI0gc6qg== integrity sha512-UyI0rmvPPkjOJV8XGWa9VCTq7R4hBVipimhnAXeSXnuAPjuTqbyfA5Ec9RcYJ1Hhu+ISnc8bJ1KfGZd4ZkYARQ==
dependencies: dependencies:
bson "^1.1.0" bson "^1.1.1"
require_optional "^1.0.1" require_optional "^1.0.1"
safe-buffer "^5.1.2" safe-buffer "^5.1.2"
optionalDependencies: optionalDependencies:
saslprep "^1.0.0" saslprep "^1.0.0"
mongodb@^3.1.13: mongodb@^3.2.3:
version "3.1.13" version "3.2.3"
resolved "https://npm.gvia.group/mongodb/-/mongodb-3.1.13.tgz#f8cdcbb36ad7a08b570bd1271c8525753f75f9f4" resolved "https://npm.gvia.group/mongodb/-/mongodb-3.2.3.tgz#4610ee33d300caa74329c2dd03e137210723cd91"
integrity sha512-sz2dhvBZQWf3LRNDhbd30KHVzdjZx9IKC0L+kSZ/gzYquCF5zPOgGqRz6sSCqYZtKP2ekB4nfLxhGtzGHnIKxA== integrity sha512-jw8UyPsq4QleZ9z+t/pIVy3L++51vKdaJ2Q/XXeYxk/3cnKioAH8H6f5tkkDivrQL4PUgUOHe9uZzkpRFH1XtQ==
dependencies: dependencies:
mongodb-core "3.1.11" mongodb-core "^3.2.3"
safe-buffer "^5.1.2" safe-buffer "^5.1.2"
ms@2.0.0: ms@2.0.0:
...@@ -1274,12 +1274,12 @@ node-pre-gyp@^0.10.0: ...@@ -1274,12 +1274,12 @@ node-pre-gyp@^0.10.0:
semver "^5.3.0" semver "^5.3.0"
tar "^4" tar "^4"
nodemon@^1.18.9: nodemon@^1.18.11:
version "1.18.9" version "1.18.11"
resolved "https://npm.gvia.group/nodemon/-/nodemon-1.18.9.tgz#90b467efd3b3c81b9453380aeb2a2cba535d0ead" resolved "https://npm.gvia.group/nodemon/-/nodemon-1.18.11.tgz#d836ab663776e7995570b963da5bfc807e53f6b8"
integrity sha512-oj/eEVTEI47pzYAjGkpcNw0xYwTl4XSTUQv2NPQI6PpN3b75PhpuYk3Vb3U80xHCyM2Jm+1j68ULHXl4OR3Afw== integrity sha512-KdN3tm1zkarlqNo4+W9raU3ihM4H15MVMSE/f9rYDZmFgDHAfAJsomYrHhApAkuUemYjFyEeXlpCOQ2v5gtBEw==
dependencies: dependencies:
chokidar "^2.0.4" chokidar "^2.1.5"
debug "^3.1.0" debug "^3.1.0"
ignore-by-default "^1.0.1" ignore-by-default "^1.0.1"
minimatch "^3.0.4" minimatch "^3.0.4"
...@@ -1995,10 +1995,10 @@ unzip-response@^2.0.1: ...@@ -1995,10 +1995,10 @@ unzip-response@^2.0.1:
resolved "https://npm.gvia.group/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" resolved "https://npm.gvia.group/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=
upath@^1.1.0: upath@^1.1.1:
version "1.1.0" version "1.1.2"
resolved "https://npm.gvia.group/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" resolved "https://npm.gvia.group/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068"
integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==
update-notifier@^2.5.0: update-notifier@^2.5.0:
version "2.5.0" version "2.5.0"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment