metamigo-api - fix linter errors in signal service

This commit is contained in:
Abel Luck 2023-03-13 15:06:06 +00:00
parent ab7844827e
commit 594bc23583
2 changed files with 32 additions and 29 deletions

View file

@ -3,6 +3,7 @@ import { Service } from "@hapipal/schmervice";
import { promises as fs } from "fs";
import {
SignaldAPI,
SendResponsev1,
IncomingMessagev1,
ClientMessageWrapperv1,
} from "@digiresilience/node-signald";
@ -118,17 +119,21 @@ export default class SignaldService extends Service {
return db.signalBots.findBy({ token });
}
async register(bot: Bot, code: string): Promise<any> {
async register(bot: Bot, code: string): Promise<void> {
const address = await this.signald.verify(bot.phoneNumber, code);
this.server.db().signalBots.updateAuthInfo(bot, address.address.uuid);
}
async send(bot: Bot, phoneNumber: string, message: string): Promise<any> {
async send(
bot: Bot,
phoneNumber: string,
message: string
): Promise<SendResponsev1> {
this.server.logger.debug(
{ us: bot.phoneNumber, then: phoneNumber, message },
{ us: bot.phoneNumber, them: phoneNumber, message },
"signald send"
);
return await this.signald.send(
return this.signald.send(
bot.phoneNumber,
{ number: phoneNumber },
undefined,
@ -136,8 +141,8 @@ export default class SignaldService extends Service {
);
}
async resetSession(bot: Bot, phoneNumber: string): Promise<any> {
return await this.signald.resetSession(bot.phoneNumber, {
async resetSession(bot: Bot, phoneNumber: string): Promise<SendResponsev1> {
return this.signald.resetSession(bot.phoneNumber, {
number: phoneNumber,
});
}

View file

@ -136,14 +136,13 @@ export default class WhatsappService extends Service {
}
private async queueMessage(bot: Bot, webMessageInfo: proto.WebMessageInfo) {
const { key: { id, fromMe }, message, messageTimestamp } = webMessageInfo;
if (!fromMe && message) {
const isMediaMessage =
message.audioMessage ||
message.documentMessage ||
message.imageMessage ||
message.videoMessage;
const { key: { id, fromMe, remoteJid }, message, messageTimestamp } = webMessageInfo;
if (!fromMe && message && remoteJid !== "status@broadcast") {
const { audioMessage, documentMessage, imageMessage, videoMessage } = message;
const isMediaMessage = audioMessage ||
documentMessage ||
imageMessage ||
videoMessage;
const messageContent = Object.values(message)[0]
let messageType: MediaType;
@ -151,25 +150,25 @@ export default class WhatsappService extends Service {
let filename: string;
let mimetype: string;
if (isMediaMessage) {
if (message.audioMessage) {
if (audioMessage) {
messageType = "audio";
filename =
id + "." + message.audioMessage.mimetype.split("/").pop();
mimetype = message.audioMessage.mimetype;
} else if (message.documentMessage) {
id + "." + audioMessage.mimetype.split("/").pop();
mimetype = audioMessage.mimetype;
} else if (documentMessage) {
messageType = "document";
filename = message.documentMessage.fileName;
mimetype = message.documentMessage.mimetype;
} else if (message.imageMessage) {
filename = documentMessage.fileName;
mimetype = documentMessage.mimetype;
} else if (imageMessage) {
messageType = "image";
filename =
id + "." + message.imageMessage.mimetype.split("/").pop();
mimetype = message.imageMessage.mimetype;
} else if (message.videoMessage) {
id + "." + imageMessage.mimetype.split("/").pop();
mimetype = imageMessage.mimetype;
} else if (videoMessage) {
messageType = "video"
filename =
id + "." + message.videoMessage.mimetype.split("/").pop();
mimetype = message.videoMessage.mimetype;
id + "." + videoMessage.mimetype.split("/").pop();
mimetype = videoMessage.mimetype;
}
const stream = await downloadContentFromMessage(messageContent, messageType)
@ -199,7 +198,7 @@ export default class WhatsappService extends Service {
}
}
private async queueUnreadMessages(bot: Bot, messages: any[]) {
private async queueUnreadMessages(bot: Bot, messages: proto.IWebMessageInfo[]) {
for await (const message of messages) {
await this.queueMessage(bot, message);
}
@ -266,9 +265,8 @@ export default class WhatsappService extends Service {
}
}
async receive(bot: Bot, lastReceivedDate: Date): Promise<any> {
async receive(bot: Bot, _lastReceivedDate: Date): Promise<proto.IWebMessageInfo[]> {
const connection = this.connections[bot.id]?.socket;
const messages = await connection.loadAllUnreadMessages();
return messages;
}