firewall: implement blocklist

This commit is contained in:
Girish Ramakrishnan
2020-08-31 18:22:33 -07:00
parent 491af5bd9a
commit e4b06b16a9
12 changed files with 135 additions and 0 deletions

33
src/routes/network.js Normal file
View File

@@ -0,0 +1,33 @@
'use strict';
exports = module.exports = {
getBlocklist,
setBlocklist
};
var assert = require('assert'),
BoxError = require('../boxerror.js'),
HttpError = require('connect-lastmile').HttpError,
HttpSuccess = require('connect-lastmile').HttpSuccess,
network = require('../network.js');
function getBlocklist(req, res, next) {
network.getBlocklist(function (error, blocklist) {
if (error) return next(BoxError.toHttpError(error));
next(new HttpSuccess(200, { blocklist }));
});
}
function setBlocklist(req, res, next) {
assert.strictEqual(typeof req.body, 'object');
if (!Array.isArray(req.body.blocklist)) return next(new HttpError(400, 'blocklist is required'));
if (!req.body.blocklist.every(x => typeof x === 'string')) return next(new HttpError(400, 'blocklist must be array of strings'));
network.setBlocklist(req.body.blocklist, function (error) {
if (error) return next(BoxError.toHttpError(error));
next(new HttpSuccess(200, {}));
});
}