enhancer-data-bridge
Version:
A bridge between Enhancer Clould and user business datasource
54 lines (46 loc) • 1.86 kB
JavaScript
var express = require( 'express' );
var router = express.Router();
var rdb = require('../controllers/rdb');
var httpproxy = require('../controllers/httpproxy');
var file = require('../controllers/file');
var userAuth = require('../controllers/userauth');
var captcha = require('enhancer-captcha');
var fs = require('fs');
var path = require('path');
var pkg = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../package.json')));
router.get('/', function(req, res) {
res.jsonp({
success: true,
message: 'OK',
version: pkg.version
});
});
router.get('/status', function(req, res) {
res.send('OK');
});
router.post('/login/:uid/:pwd', userAuth.login);
router.get('/logout', userAuth.logout);
router.get('/captcha/:len/:codecomp/:colorful/:level', function(req, res) {
var len = parseInt(req.params.len) || 5;
var numOnly = req.params.codecomp === 'num';
var colorful = req.params.colorful === '1';
var level = parseInt(req.params.level) || 1;
var text = captcha.text(len, numOnly);
var img = captcha.make(text, colorful, level);
res.setHeader('Content-Type', 'image/bmp');
res.end(img.getFileData());
});
router.all(/^\/data\/rdb\/(\w+)/, rdb.before);
router.post('/data/rdb/:source_id', rdb.queryData);
router.get('/data/rdb/:source_id/export', rdb.exportData);
router.post('/execute/rdb', rdb.execute);
router.post('/data/httpproxy/:source_id', httpproxy.request);
router.post('/file/upload', file.upload);
router.options('/file/upload', function (req, res) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,POST,OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With');
res.sendStatus(200);
});
router.get(/file\/*/, file.download);
module.exports = router;