UNPKG

clannad

Version:

data storage service with RESTful APIs.

176 lines (114 loc) 5.26 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _koaRouter = require('koa-router'); var _koaRouter2 = _interopRequireDefault(_koaRouter); var _mongoose = require('mongoose'); var _mongoose2 = _interopRequireDefault(_mongoose); var _auth = require('./controllers/auth'); var _auth2 = _interopRequireDefault(_auth); var _project = require('./controllers/project'); var _project2 = _interopRequireDefault(_project); var _token = require('./controllers/token'); var _token2 = _interopRequireDefault(_token); var _table = require('./controllers/table'); var _table2 = _interopRequireDefault(_table); var _source = require('./controllers/source'); var _source2 = _interopRequireDefault(_source); var _field = require('./controllers/field'); var _field2 = _interopRequireDefault(_field); var _file = require('./controllers/file'); var _file2 = _interopRequireDefault(_file); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var router = new _koaRouter2.default(); // 管理员接口 // 最高权限者删除所有数据,包括admin.xx router.del('/admin', _auth2.default.isMaster, function () { var ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(ctx) { return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return _mongoose2.default.connection.db.dropDatabase(); case 2: case 'end': return _context.stop(); } } }, _callee, undefined); })); return function (_x) { return ref.apply(this, arguments); }; }()); // 增加一个项目 所需字段: project, domain router.post('/admin', _auth2.default.isRoot, _project2.default.add); router.use(['/admin/:projectName'], _auth2.default.isRoot); // 删除项目以及其表与所有资源数据 router.del('/admin/:projectName', _project2.default.del); // 修改项目 可修改: name, domain router.patch('/admin/:projectName', _project2.default.edit); // 生成一个新的token router.post('/admin/:projectName/token', _token2.default.add); // 删除一个 token router.del('/admin/:projectName/token/:name', _token2.default.del); // 查看 token 数组 router.get('/admin/:projectName/token', _token2.default.list); // 导出数据 router.get('/admin/:projectName/_export/:fileName', _file2.default.export); // 导入数据 router.post('/admin/:projectName/_import', _file2.default.import); // 查询用户有权限的项目列表 router.get('/admin', _auth2.default.fetchAuth); // 查询某项目详情 router.get('/admin/:projectName', _project2.default.detail); // 查询某项目的表列表 router.get('/admin/:projectName/table', _table2.default.list); // 查询某项目的表总和 router.get('/admin/:projectName/table/count', _table2.default.count); // 为某个项目新增表 router.post('/admin/:projectName/table', _table2.default.add); // 删除某项目的某表 router.del('/admin/:projectName/table/:id', _table2.default.del); // 修改某项目的某表, 可修改 name, fields, visitorAuth, userAuth, adminAuth router.patch('/admin/:projectName/table/:id', _table2.default.edit); // 查询某表详情 router.get('/admin/:projectName/table/:id', _table2.default.detail); // 给某表加上一个字段,需要 field 本体 router.post('/admin/:projectName/table/:id/field', _field2.default.add); // 获取某表的字段列表 router.get('/admin/:projectName/table/:id/field', _field2.default.list); // 获取某表的字段总数 router.get('/admin/:projectName/table/:id/field/count', _field2.default.count); // 删除某表的一个字段 router.del('/admin/:projectName/field/:id', _field2.default.del); // 修改某表的一个字段,可修改其任何内容 router.patch('/admin/:projectName/field/:id', _field2.default.edit); // 获取某表的一个字段 router.get('/admin/:projectName/field/:id', _field2.default.detail); // 用户接口 // 查看该用户对该项目的权限 router.get('/:projectName/_auth', _auth2.default.getProjectAuth); router.use('/:projectName/:tableName', _auth2.default.hasTableAuth, _table2.default.getModel); // 新增一个资源,需要 source本体。 router.post('/:projectName/:tableName', _source2.default.add); // 删除资源 router.del('/:projectName/:tableName', _source2.default.del); // 修改资源 router.patch('/:projectName/:tableName', _source2.default.edit); // 获得资源列表 router.get('/:projectName/:tableName', _source2.default.list); // 获得资源总和 router.get('/:projectName/:tableName/count', _source2.default.count); // 获取聚合数据 router.get('/:projectName/:tableName/aggregate', _source2.default.aggregate); // 获得单条资源 router.get('/:projectName/:tableName/detail', _source2.default.detail); exports.default = router; module.exports = exports['default'];