import axios from '../http'
import { cryptoMsg, decryptoMsg } from '@/util/util.js'
import Message from '@/store/db/Message.js'

export default {
  /**
   * 用户最新消息
   * @param {Object} data
   * @param {String} data.group_id
   * @param {String} data.client_hash // 客户端最新消息hash
   */
  async getNewMsg (params) {
    let res = await axios.request({
      url: 'person/newMsg',
      method: 'get',
      needLogin: true,
      params
    })

    const objMessage = new Message()
    // 如果不同步执行，第一次初始化数据库会出现很奇怪的问题...
    await objMessage.saveMsg(params['session_id'], res.data.data)

    // 解密数据
    res.data.data.list.forEach(item => {
      if (item.msg_type == 4) {
        item.msg = JSON.parse(decryptoMsg(item.msg))
      } else {
        item.msg = decryptoMsg(item.msg)
      }
    })

    return res
  },
  /**
   * 用户历史消息
   * @param {Object} data
   * @param {String} data.group_id
   * @param {String} data.client_hash // 客户端最旧消息hash
   */
  getHistoryMsg (params) {
    return axios.request({
      url: 'person/historyMsg',
      method: 'get',
      needLogin: true,
      params
    })
  },
  /**
   * 发送私聊信息
   * @param {Object} data
   * @param {Number} data.session_id  会话id
   * @param {Number} data.msg_type  消息类型：0:文本,1:图片,2:视频
   * @param {String} data.msg   内容
   */
  sendMsg (data) {
    data.msg = cryptoMsg(data.msg)
    return axios.request({
      url: 'person/sendMsg',
      method: 'post',
      needLogin: true,
      data
    })
  },
  /**
   * 发送私聊信息
   * @param {Object} data
   * @param {String} data.session_id  会话id
   * @param {String} data.hash 会话hash
   */
  repealPersonMsg (data) {
    return axios.request({
      url: 'person/repealMsg',
      method: 'post',
      needLogin: true,
      data
    })
  }
}
