im.js 1.93 KB
'use strict';

const _ = require('lodash');
const crypto = global.yoho.crypto;
const config = global.yoho.config;

const ImAPI = new global.yoho.ApiBase(config.domains.imCs, {
    name: 'im',
    cache: global.yoho.cache,
    useCache: false
});

const encryptedUid = uid => crypto.encryption(null, uid + '');

/**
 *  新建留言信息
 *  path: {host}/leavemessage/saveLeavemessage
 *
 *  @param {int} uid 用户id
 *  @param {int} conversationId 会话id
 *  @param {str} content 留言内容
 */
exports.saveMessage = (uid, conversationId, content) => {
    let params = {
        uid,
        conversationId,
        content,
        encryptedUid: encryptedUid(uid)
    };


    return ImAPI.post('/api/leavemessage/saveLeavemessage', params);
};



/**
 *  查询用户聊天记录
 *  @param {int} uid 用户uid
 *  @param [int] pageSize 每次加载的聊天记录
 *  @param [int] startTime
 *  @param [int] endTime
 */
exports.fetchImHistory = (uid, endTime, pageSize, startTime) => {
    pageSize = pageSize || 10;

    let params = {
        uid,
        pageSize,
        encryptedUid: encryptedUid(uid)
    };

    _.forEach({startTime, endTime}, (key, val) => {
        val && (params[key] = val);
    });

    return ImAPI.get('/api/conversationMessage/pageList', params)
        .then(result => {
            return result;
        }, () => {
            return {
                code: 500,
                data: {
                    records: [], totalCount: 0
                }
            };
        });
};

/**
 *  获取用户订单, 默认最近10笔
 *  @param {int} uid 用户uid
 *  @param {init} createTimeBegin 开始时间
 */
exports.fetchOrderList = (uid, createTimeBegin) => {
    let params = {
        uid,
        encryptedUid: encryptedUid(uid),
        imgSize: '90x120',
    };

    _.forEach({createTimeBegin}, (key, val) => {
        val && (params[key] = val);
    });

    return ImAPI.get('/api/order/queryLastTenOrder', params);
};