UNPKG

enhancer-data-bridge

Version:

A bridge between Enhancer Clould and user business datasource

54 lines (46 loc) 1.86 kB
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;