const router = require('express').Router(); const {paramFail, ServerError, success, controlError, searchSuccess} = require("../tools/result"); const c = require("../control/c_solution"); const typeTool = require("../tools/typeTool_cjs"); const log = require("../logger").logger("r_solution","info"); /** * 加载解决方案 * @param key query 解决方案类别 * @param p query 页码 * @param l query 每页数量 */ router.get('/load', async (req, res) => { try{ let err, result; let {key, l, p} = req.query; if(!key){ paramFail(res, "key is required"); return; } log.info(key); [err, result] = await c.loadSolution(key, p, l); if(err){ return controlError(res, err, null);} success(res, result); }catch (e) { ServerError(res, null, e.message); } }); router.get( '/search', async (req, res) => { try{ let err, result; let {key, l, p, type} = req.query; type = type || 'all'; l = typeTool.toNumber(l); p = typeTool.toNumber(p); log.info(`page=${p},limit=${l}`); [err, result] = await c.searchSolution(type, key, p, l); if(err){ return controlError(res, err, null);} log.info(`result len=${result.arr.length}`) searchSuccess(res, result.arr, result.total, result.page, result.limit, ); }catch (e) { ServerError(res, null, e.message); } }); router.get('/:id', async (req, res) => { try{ let err, result; let {id} = req.params; id = typeTool.toNumber(id); if(!id){ paramFail(res, "id is required"); return; } log.info(`get solution info ${id}`); [err, result] = await c.getSolutionInfo(id); if(err){ return controlError(res, err, null);} success(res, result); }catch (e) { ServerError(res, null, e.message); } }); module.exports = router;