@arisan/data-api
Version:
The Universal Database API Gateway for CLIO's Modules
45 lines (37 loc) • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = checkPublicIP;
var _Utils = require('../Utils');
var _DataAPI = require('../DataAPI');
/* eslint-disable import/first */
//region 1. Platform Libraries */
const ipaddr = require('ipaddr.js');
//endregion
//region 2. Project Libraries */
//endregion
function checkPublicIP(req, res, next) {
const ip = req.body.publicIp;
const log = (lvl, msg) => _DataAPI.logger.log(lvl, msg, { tags: 'checkPublicIP' });
if (!ip) {
const message = 'No Public IP';
log('error', message);
res.status(400).send(message);
return;
}
if (!ipaddr.isValid(ip)) {
const message = `Malformed Public IP ${ ip }`;
log('error', message);
res.status(400).send(message);
return;
}
if (!(0, _Utils.isWithinValidPublicIpRange)(ip)) {
const message = `Public IP in Invalid Range ${ ip }`;
log('error', message);
res.status(400).send(message);
return;
}
next();
}
//# sourceMappingURL=checkPublicIP.js.map