import * as Sendbird from './sendbird' import { SendMessageMesgReturnType, SendMessageFileReturnType } from './types' export async function sendMessage({ channelUrl, userId, message, createdAt = Date.now(), messageData = '', }: { channelUrl: string userId: string message: string createdAt: number messageData: string }): Promise { if (!message) { throw new Error('Can\'t send empty message') } return await Sendbird.doPost(`/group_channels/${channelUrl}/messages`, { user_id: userId, message, message_type: 'MESG', data: messageData, ...(createdAt && { created_at: createdAt }), }) } export async function sendFileMessage({ channelUrl, userId, attachmentUrl, attachmentName, attachementType, createdAt = Date.now(), messageData = '', }: { channelUrl: string userId: string attachmentUrl: string attachmentName: string attachementType: string createdAt: number messageData: string }): Promise { return await Sendbird.doPost(`/group_channels/${channelUrl}/messages`, { user_id: userId, message_type: 'FILE', url: attachmentUrl, file_name: attachmentName, file_type: attachementType, data: messageData, ...(createdAt && { created_at: createdAt }), }) } export async function updateMessage({ channelUrl, messageId, messageType, message, custom_type, data, mention_type, mentioned_user_ids, }: { channelUrl: string messageId: number messageType: string message?: string custom_type?: string data?: string mention_type?: string mentioned_user_ids?: string[] }): Promise { await Sendbird.doPut(`/group_channels/${channelUrl}/messages/${messageId}`, { message_type: messageType, message, custom_type, data, mention_type, mentioned_user_ids, }) } export async function deleteMessage({ channelUrl, messageId, }: { channelUrl: string messageId: string }): Promise { await Sendbird.doDelete(`/group_channels/${channelUrl}/messages/${messageId}`) }