page_cache.js 1.64 KB
/**
 *
 * @author: chenfeng<feng.chen@yoho.cn>
 * @date: 16/10/13
 */

'use strict';

import Router from 'koa-router';
import sh from 'shelljs';
import {
    PageCache
} from '../../models';

const r = new Router();

const pageCahe = {
    async query(ctx) {
        let data = {
            storeList: [{
                tableName: 'ngx_cache_pc',
                name: 'PC'
            }, {
                tableName: 'ngx_cache_wap',
                name: 'Wap'
            }],
            serverList: [{
                name: 'AWS'
            }, {
                name: 'qCloud'
            }],
            count: 0
        };
        await ctx.render('action/page_cache', data);
    },
    async clear(ctx) {
        let queryUris = ctx.request.body.query_uri; 
        let storeTableName = ctx.request.body.table_name;
        let serverType = ctx.request.body.server;
        let servers = serverType.split(',').filter(server => server);
        if (queryUris && storeTableName && servers.length) {
            PageCache.removeCache(queryUris, storeTableName, servers);
        }
        return ctx.body = {
            code: 200
        };
    },
    async clearAll(ctx) {
        let storeTableName = ctx.request.body.table_name;
        let serverType = ctx.request.body.server;
        let servers = serverType.split(',').filter(server => server);
        if (storeTableName && servers.length) {
            PageCache.removeAllCache(storeTableName, servers);
        }
        return ctx.body = {
            code: 200
        };
    }
}
r.get('/query', pageCahe.query);
r.post('/clear', pageCahe.clear);
r.post('/clear/all', pageCahe.clearAll);

export default r;