Skip to content

Commit

Permalink
Update deleteMessage.ts
Browse files Browse the repository at this point in the history
  • Loading branch information
jorgerafael95 authored Aug 21, 2024
1 parent d6ae20a commit 8a48ccd
Showing 1 changed file with 18 additions and 43 deletions.
61 changes: 18 additions & 43 deletions src/chat/functions/deleteMessage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,11 @@ import { assertGetChat } from '../../assert';
import { Cmd, Wid } from '../../whatsapp';
import { MSG_TYPE, SendMsgResult } from '../../whatsapp/enums';
import { getMessageById } from '.';
import { iAmAdmin } from '../../group';

export interface DeleteMessageReturn {
id: string;
sendMsgResult: Promise<SendMsgResult>;
sendMsgResult: SendMsgResult;
isRevoked: boolean;
isDeleted: boolean;
isSentByMe: boolean;
Expand All @@ -46,23 +47,6 @@ export interface DeleteMessageReturn {
*
* @category Message
*/
export async function deleteMessage(
chatId: string | Wid,
id: string,
deleteMediaInDevice: boolean,
revoke: boolean
): Promise<DeleteMessageReturn>;
/**
* Delete a list of messages
*
* @category Message
*/
export async function deleteMessage(
chatId: string | Wid,
ids: string[],
deleteMediaInDevice: boolean,
revoke: boolean
): Promise<DeleteMessageReturn[]>;
export async function deleteMessage(
chatId: string | Wid,
ids: string | string[],
Expand All @@ -80,24 +64,26 @@ export async function deleteMessage(

const msgs = await getMessageById(ids);

const results: any[] = [];
const results: DeleteMessageReturn[] = [];
for (const msg of msgs) {
let sendMsgResult: SendMsgResult = SendMsgResult.ERROR_UNKNOWN;
let isRevoked = false;
let isDeleted = false;
const isSentByMe = msg.senderObj.isMe;
const imAdmin = await iAmAdmin(chatId);

const canRevoke = isSentByMe || imAdmin;

if (msg.type === MSG_TYPE.REVOKED && revoke) {
// Message is already revoked
sendMsgResult = SendMsgResult.ERROR_UNKNOWN;
isRevoked = true;
} else if (revoke && isSentByMe) {
} else if (revoke && canRevoke) {
if (msg.type === 'list') {
(msg as any).__x_isUserCreatedType = true;
}

if (compare(self.Debug.VERSION, '2.3000.0', '>=')) {
Cmd.sendRevokeMsgs(
await Cmd.sendRevokeMsgs(
chat,
{
type: 'message',
Expand All @@ -106,19 +92,16 @@ export async function deleteMessage(
{ clearMedia: deleteMediaInDevice }
);
} else {
Cmd.sendRevokeMsgs(chat, [msg], { clearMedia: deleteMediaInDevice });
await Cmd.sendRevokeMsgs(chat, [msg], {
clearMedia: deleteMediaInDevice,
});
}

if (chat.promises.sendRevokeMsgs) {
const result = await chat.promises.sendRevokeMsgs;
if (Array.isArray(result)) {
sendMsgResult = result[0];
}
}
isRevoked = msg.type == 'revoked';
sendMsgResult = SendMsgResult.OK;
isRevoked = true;
} else {
if (compare(self.Debug.VERSION, '2.3000.0', '>=')) {
Cmd.sendDeleteMsgs(
await Cmd.sendDeleteMsgs(
chat,
{
type: 'message',
Expand All @@ -127,16 +110,11 @@ export async function deleteMessage(
deleteMediaInDevice
);
} else {
Cmd.sendDeleteMsgs(chat, [msg], { clearMedia: deleteMediaInDevice });
await Cmd.sendDeleteMsgs(chat, [msg], { clearMedia: deleteMediaInDevice });
}

if (chat.promises.sendDeleteMsgs) {
const result = await chat.promises.sendDeleteMsgs;
if (Array.isArray(result)) {
sendMsgResult = result[0];
}
}
isDeleted = Boolean(chat.msgs.get(msg.id));
sendMsgResult = SendMsgResult.OK;
isDeleted = !chat.msgs.get(msg.id);
}

results.push({
Expand All @@ -148,8 +126,5 @@ export async function deleteMessage(
});
}

if (isSingle) {
return results[0];
}
return results;
return isSingle ? results[0] : results;
}

0 comments on commit 8a48ccd

Please sign in to comment.