chat.js 2.94 KB
import { fn, fetch } from '@/api/fn';

const Api = {
  GET_MESSAGES_LIST: '/srv/?a=message&t=list',
  GET_MESSAGES_DETAIL: '/srv/?a=message&t=system_detail',
  GET_CHAT_CONVERSATION: '/srv/?a=message&t=chat_conversation',
  GET_CHAT_LIST: '/srv/?a=message&t=chat_list',
  SEND_CHAT: '/srv/?a=message&t=chat_send',
}

/**
 * @description: 所有消息列表
 * @param {*} params
 * @param {number} params.status - 消息状态, 3=未读,5=已读
 * @param {number} params.type - 消息类型, system=系统消息,chat=聊天消息
 * @param {number} params.keyword - 搜索关键词
 * @param {number} params.page - 页码,从0开始
 * @param {number} params.limit - 每页数量
 * @returns data.list[{
 *   id: 如果是系统消息,则ID是消息ID,如果是聊天消息,则ID是聊天室ID
 *   type: 消息类型, system=系统消息,chat=买卖双方聊天
 *   status: 消息状态, 3=未读,5=已读
 *   note: 消息内容
 *   create_time: 创建时间
 *   created_time_desc: 消息创建时间描述
 *   partner_nickname: 聊天人昵称
 *   partner_avatar_url: 聊天人头像
 * }]
 */
export const getMessagesListAPI = (params) => fn(fetch.get(Api.GET_MESSAGES_LIST, params));

/**
 * @description: 系统消息详情
 * @param {*} params
 * @param {number} params.id - 系统消息ID
 * @returns data{
 *   id: 系统消息ID
 *   type: 消息类型 system=系统消息,chat=买卖双方聊天
 *   status: 消息状态, 3=未读,5=已读
 *   note: 消息内容
 *   create_time: 创建时间
 *   created_time_desc: 消息创建时间描述
 * }
 */
export const getMessagesDetailAPI = (params) => fn(fetch.get(Api.GET_MESSAGES_DETAIL, params));

/**
 * @description: 获取聊天室ID
 * @param {*} params
 * @param {number} params.buyer_id - 买方ID
 * @param {number} params.seller_id - 卖方ID
 * @param {number} params.vehicle_id - 车辆ID
 * @returns data{
 *   conversation_id: 会话ID
 * }
*/
export const getChatConversationAPI = (params) => fn(fetch.get(Api.GET_CHAT_CONVERSATION, params));

/**
 * @description: 聊天消息列表
 * @param {*} params
 * @param {number} params.conversation_id - 会话ID
 * @param {number} params.page - 页码,从0开始
 * @param {number} params.limit - 每页数量
 * @returns data.list[{
 *   id: 聊天消息ID
 *   type: 消息类型 system=系统消息,chat=买卖双方聊天
 *   status: 消息状态, 3=未读,5=已读
 *   note: 消息内容
 *   create_time: 创建时间
 *   created_time_desc: 消息创建时间描述
 * }]
 * @returns 聊天对象 data.receiver{
 *   id: ID
 *   nickname: 昵称
 *   avatar: 头像
 * }
*/
export const getChatListAPI = (params) => fn(fetch.get(Api.GET_CHAT_LIST, params));

/**
 * @description: 发送聊天消息
 * @param {*} params
 * @param {number} params.conversation_id - 会话ID
 * @param {string} params.note - 消息内容
 * @returns data{
 *   id: 聊天消息ID
 * }
*/
export const sendChatAPI = (params) => fn(fetch.post(Api.SEND_CHAT, params));