const router = require('express').Router(); const {paramFail, ServerError, success, controlError, searchSuccess} = require("../tools/result"); const c_solution = require("../control/c_solution"); const typeTool = require("../tools/typeTool_cjs"); const c = require("../control/c_news"); const {isEmpty} = require("../tools/typeTool_cjs"); const log = require("../logger").logger("r_news","info"); router.get( '/search', async (req, res) => { try{ let err, result; let {key, l, p, type, s,st } = req.query; type = type || 'all'; l = typeTool.toNumber(l); p = typeTool.toNumber(p); log.info(`page=${p},limit=${l}`); [err, result] = await c_solution.searchNews(type, key, s, st, 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( '/pages', async (req, res) => { try{ log.info(`获取所有文章接口`) let err, result; let {key, l, p, type ,pType} = req.query; type = type || 'all'; l = typeTool.toNumber(l); p = typeTool.toNumber(p); log.info(`key=${key} pTYpe=${pType} page=${p},limit=${l}`); [err, result] = await c_solution.searchAllNews(pType, 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('/mini', async (req, res) => { try{ log.info(`[搜索文章] 只获取基础值`) 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.searchNewsByMini(type, key, p, l); if(err){ log.info(`[搜索文章] err=${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('/read',async(req,res)=>{ try{ let err, result; let {id} = req.query; id = typeTool.toNumber(id); if(!id){ paramFail(res, "id is required"); return; } [err, result] = await c.addReadNum(id); if(err){ return controlError(res, err, null);} success(res, result); }catch (e) { ServerError(res, null, e.message); } }) router.post('/add',async(req,res)=>{ try{ let err, result; let body = req.body; if(isEmpty(body) || !body.title || !body.content || !body.type || !body.cover){ paramFail(res, "请按照要求填写数据"); return; } [err, result] = await c.addArticle(body); if(err){ return controlError(res, err, null);} success(res, result); }catch (e) { ServerError(res, null, e.message); } }); module.exports = router;