client-service.js 1.38 KB
/**
 * 客服用户端 service
 *
 * @author: liqi <qi.li@yoho.cn>
 * @date: 2016/11/4
 */

'use strict';

const Promise = require('bluebird');
const _ = require('lodash');
const clientAPI = require('./client-api');

/**
 * 在线客服客服端页面
 * @param { number } type
 * @param { string } encryptedUid
 * @return { Object } 客服设置
 */
const getClientData = (type, encryptedUid) => {
    const logoSize = '136x40';
    const qcSize = '135x135';
    const advSize = '160x335';
    const regExp = /\{width\}x\{height\}/g;

    let apiMethod = [
        clientAPI.getCsSetting(type),
        clientAPI.getMsgHistory(encryptedUid),
        clientAPI.getLastTenOrders(encryptedUid)
    ];

    return Promise.all(apiMethod)
        .then(res => {
            let csSetting = res[0].data && res[0].data.config;
            let records = res[1].data && res[1].data.records || [];
            let hasHistory = records.length > 0 || false;

            csSetting.windowLogo = csSetting.windowLogo.replace(regExp, logoSize);
            csSetting.qrCode = csSetting.qrCode.replace(regExp, qcSize);
            csSetting.pcAdImg = csSetting.pcAdImg.replace(regExp, advSize);

            return {
                csSetting: csSetting,
                hasHistory: hasHistory,
                orders: res[2].data,
                qas: []
            };
        });
};

module.exports = {
    getClientData
};