clannad
Version:
data storage service with RESTful APIs.
176 lines (114 loc) • 5.26 kB
JavaScript
;
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'];