Oouchenglerecord new docs
fda65aa9创建于 2021年9月10日历史提交
/**
 * @file blog router
 */
var express = require('express');
var router = express.Router();
var os = require('os');

const httpUtil = require('../util/httpUtil');
var esUtil = require('../util/esParams');
const logUtil = require('../util/logUtil');
const apiConfig = require('../config/apiConfig');
const ES = require('../config/searchConfig');

router.get('/list', function (req, res) {
    let url = ES.ES_URL;
    for (let key in apiConfig.ES_REINDEX) {
        url += apiConfig.ES_REINDEX[key] + ',';
    }
    url += '/_search';
    let json = esUtil.getSearchViewsReqJson('blog', 'list');
    httpUtil.getViews(url, 'GET', false, esUtil.esToken, json).then(data => {
        let response = esUtil.getSearchViewsResJson('list', data);
        res.json({
            code: 200,
            data: response
        });
    }).catch(ex => {
        console.log('[' + logUtil.getTime() + ']' + ex.stack + os.EOL);
        res.json({
            code: 500,
            data: ex.stack
        });
    });
});

router.post('/visit', function (req, res) {
    if (req.body.title == null || req.body.title.length === 0) {
        res.json({
            code: 400,
            data: 'title is null'
        });
    } else {
        let title = req.body.title;
        let lang = req.body.lang;
        let indexEs = apiConfig.ES_REINDEX[lang];
        let url = ES.ES_URL + indexEs + '/_search';
        let json = esUtil.getSearchViewsReqJson('blog', 'one', title);
        httpUtil.getViews(url, 'GET', false, esUtil.esToken, json).then(data => {
            let newData = JSON.parse(data);
            if (newData.hits.hits.length) {
                let url = ES.ES_URL + indexEs + '/_update/' + newData.hits.hits[0]._id;
                let updateViewJson = esUtil.getUpdateViewJson();
                httpUtil.updateViews(url, 'POST', false, esUtil.esToken, updateViewJson).then(data => {
                    res.json({
                        code: 200,
                        data: 'success'
                    });
                }).catch(err => {
                    console.log('[' + logUtil.getTime() + ']' + err.stack + os.EOL);
                    res.json({
                        code: 500,
                        data: err.stack
                    });
                });
            } else {
                let addDataJson = esUtil.getAddDataReqJson(title, 1, 'blog');
                let addDocUrl = ES.ES_URL + indexEs + '/_doc';
                httpUtil.addDataToReindex(addDocUrl, 'POST', false, esUtil.esToken, addDataJson).then(data => {
                    res.json({
                        code: 200,
                        data: 'success'
                    });
                }).catch(err => {
                    console.log('[' + logUtil.getTime() + ']' + err.stack + os.EOL);
                    res.json({
                        code: 500,
                        data: err.stack
                    });
                });
            }
        }).catch(ex => {
            console.log('[' + logUtil.getTime() + ']' + ex.stack + os.EOL);
            res.json({
                code: 500,
                data: ex.stack
            });
        });
    }
});

router.post('/one', function (req, res) {
    let title = req.body.title;
    let lang = req.body.lang;
    let indexEs = apiConfig.ES_REINDEX[lang];
    let url = ES.ES_URL + indexEs + '/_search';
    let json = esUtil.getSearchViewsReqJson('blog', 'one', title);
    httpUtil.getViews(url, 'GET', false, esUtil.esToken, json).then(data => {
        let response = esUtil.getSearchViewsResJson('one', data);
        res.json({
            code: 200,
            data: response
        });
    }).catch(ex => {
        console.log('[' + logUtil.getTime() + ']' + ex.stack + os.EOL);
        res.json({
            code: 500,
            data: ex.stack
        });
    });
});

module.exports = router;