import koaRouter from 'koa-router'; import interfaceController from './controllers/interface.js'; import groupController from './controllers/group.js'; import userController from './controllers/user.js'; import yapi from './yapi.js'; import projectController from './controllers/project.js'; import logController from './controllers/log.js'; const router = koaRouter(); const INTERFACE_CONFIG = { interface: { prefix: '/interface/', controller: interfaceController }, user: { prefix: '/user/', controller: userController }, group: { prefix: '/group/', controller: groupController }, project: { prefix: '/project/', controller: projectController }, log: { prefix: '/log/', controller: logController } }; //group createAction('group', 'list', 'get', 'list'); createAction('group', 'add', 'post', 'add'); createAction('group', 'up', 'post', 'up'); createAction('group', 'del', 'post', 'del'); //user createAction('user', 'login', 'post', 'login'); createAction('user', 'reg', 'post', 'reg'); createAction('user', 'list', 'get', 'list'); createAction('user', 'find', 'get', 'findById'); createAction('user', 'update', 'post', 'update'); createAction('user', 'del', 'post', 'del'); createAction('user', 'status', 'get', 'getLoginStatus'); createAction('user', 'logout', 'get', 'logout'); createAction('user', 'login_by_token', 'post', 'loginByToken'); createAction('user', 'change_password', 'post', 'changePassword'); createAction('user', 'search', 'get', 'search'); //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'); createAction('project', 'add_member', 'post', 'addMember'); createAction('project', 'del_member', 'post', 'delMember'); createAction('project', 'get_member_list', 'get', 'getMemberList'); createAction('project', 'search', 'get', 'search'); //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'); //node createAction('log', 'list', 'get', 'list'); /** * * @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) => { let inst = new INTERFACE_CONFIG[controller].controller(ctx); await inst.init(ctx); if (inst.$auth === true) { await inst[action].call(inst, ctx); } else { ctx.body = yapi.commons.resReturn(null, 400, 'Without Permission.'); } }); } module.exports = router;