yapi/server/router.js

87 lines
2.5 KiB
JavaScript
Raw Normal View History

import koaRouter from 'koa-router'
import interfaceController from './controllers/interface.js'
import groupController from './controllers/group.js'
2017-07-06 19:56:45 +08:00
import userController from './controllers/user.js'
2017-07-06 19:48:25 +08:00
2017-07-06 19:21:54 +08:00
import yapi from './yapi.js'
import projectController from './controllers/project.js'
2017-07-03 16:16:05 +08:00
const router = koaRouter();
2017-07-03 16:16:05 +08:00
const INTERFACE_CONFIG = {
interface: {
prefix: '/interface/',
controller: interfaceController
},
user: {
prefix: '/user/',
2017-07-06 18:25:53 +08:00
controller: userController
},
group: {
prefix: '/group/',
controller: groupController
2017-07-06 19:21:54 +08:00
},
project: {
prefix: '/project/',
controller: projectController
}
2017-07-03 16:16:05 +08:00
};
//group
createAction('group', 'list', 'get', 'list')
createAction('group', 'add', 'post', 'add')
createAction('group', 'up', 'post', 'up')
createAction('group', 'del', 'post', 'del')
2017-07-06 19:56:45 +08:00
//user
createAction('user', 'login', 'post', 'login')
createAction('user', 'reg', 'post', 'reg')
createAction('user', 'list', 'get', 'list')
2017-07-12 12:22:10 +08:00
createAction('user', 'find', 'post', 'findById')
2017-07-06 19:56:45 +08:00
createAction('user', 'update', 'post', 'update')
createAction('user', 'del', 'post', 'del')
2017-07-11 12:12:43 +08:00
createAction('user', 'status', 'get', 'getLoginStatus')
2017-07-11 16:50:17 +08:00
createAction('user', 'logout', 'get', 'logout')
2017-07-06 19:56:45 +08:00
2017-07-06 19:48:25 +08:00
2017-07-06 19:21:54 +08:00
//project
createAction('project', 'add', 'post', 'add')
createAction('project', 'list', 'get', 'list')
createAction('project', 'get', 'get', 'get')
createAction('project', 'up', 'post', 'up')
createAction('project', 'del', 'post', 'del')
2017-07-10 11:56:53 +08:00
createAction('project', 'add_member', 'post', 'addMember')
createAction('project', 'del_member', 'post', 'delMember')
//interface
createAction('interface', 'add', 'post', 'add')
createAction('interface', 'list', 'get', 'list')
createAction('interface', 'get', 'get', 'get')
createAction('interface', 'up', 'post', 'up')
createAction('interface', 'del', 'post', 'del')
2017-07-06 18:25:53 +08:00
/**
2017-07-06 01:09:33 +08:00
*
* @param {*} controller controller_name
* @param {*} path request_path
* @param {*} method request_method , post get put delete ...
* @param {*} action controller_action_name
*/
function createAction(controller, path, method, action){
router[method](INTERFACE_CONFIG[controller].prefix + path, async (ctx) => {
2017-07-10 11:59:13 +08:00
let inst = new INTERFACE_CONFIG[controller].controller(ctx);
2017-07-11 12:12:43 +08:00
await inst.init(ctx);
if(inst.$auth === true){
await inst[action].call(inst, ctx);
}else{
ctx.body = yapi.commons.resReturn(null, 400, 'Without Permission.');
}
})
2017-07-06 01:09:33 +08:00
}
module.exports = router