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 checkLogin = require("../middleware/checkSession"); const progressField = require("../map/progressField"); 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); } }); router.post('/edit',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.editArticle(body); if(err){ return controlError(res, err, null);} success(res, result); }catch (e) { ServerError(res, null, e.message); } }); router.delete('/del', checkLogin(progressField.session_hfy), async(req,res)=>{ try{ let err, result; let id = req.query.id; id = typeTool.toNumber(id); console.log(`删除文章`) if(!id){ paramFail(res, "id is required"); return; } [err, result] = await c.delArticle(id); if(err){ return controlError(res, err, null);} success(res, result); }catch (e) { ServerError(res, null, e.message); } }) // 获取文章分类 router.get('/types', async (req, res) => { try{ let err, result; [err, result] = await c.getArticleTypes(); if(err){ return controlError(res, err, null);} success(res, result); }catch (e) { ServerError(res, null, e.message); } }); // 删除 router.post('/type/edit', checkLogin(progressField.session_hfy), async (req, res) => { try { let err, result; const id = req.query.id; const body = req.body; log.info(`[编辑文章类型] id=${id}, body=${JSON.stringify(body)}`); [err, result] = await c.editType(id, body); if(err){ return controlError(res, err, null);} success(res, result); }catch (e) { ServerError(res, null, e.message); } }); router.post('/type/add', checkLogin(progressField.session_hfy), async (req, res) => { try { let err, result; const body = req.body; log.info(`[新增文章类型] body=${JSON.stringify(body)}`); [err, result] = await c.addType(body); if(err){ return controlError(res, err, null);} success(res, result); }catch (e) { ServerError(res, null, e.message); } }); router.delete('/type/del', checkLogin(progressField.session_hfy), async (req, res) => { try { let err, result; const id = req.query.id; log.info(`[移除文章类型] id=${id} `); if(!id ){ paramFail(res, "id is must be two "); return; } [err, result] = await c.deleteType(id); if(err){ return controlError(res, err, null);} success(res, result); }catch (e) { ServerError(res, null, e.message); } }); module.exports = router;