refactor: Simplify queue name generation and update AMQP publish method

- Refactored the queue name generation logic in `channel.service.ts` to improve readability by using a conditional operator.
- Updated the `bindQueue` method to use `queueName` instead of `event` for better clarity in `channel.service.ts`.
- Commented out unused phone number parsing logic in `whatsapp.baileys.service.ts` to clean up the code and improve maintainability.
- Made `isLatest` property optional in the type definition for better flexibility.

These changes enhance code clarity and maintainability across the services.
This commit is contained in:
Davidson Gomes 2024-12-19 11:12:11 -03:00
parent 555fa606ea
commit 6ddad8e85a
2 changed files with 49 additions and 61 deletions

View File

@ -789,10 +789,9 @@ export class ChannelStartupService {
autoDelete: false, autoDelete: false,
}); });
const queueName = const queueName = prefixKey
prefixKey !== '' ? `${prefixKey}.${event.replace(/_/g, '.').toLowerCase()}`
? `${prefixKey}.${event.replace(/_/g, '.').toLowerCase()}` : event.replace(/_/g, '.').toLowerCase();
: `${event.replace(/_/g, '.').toLowerCase()}`;
await amqp.assertQueue(queueName, { await amqp.assertQueue(queueName, {
durable: true, durable: true,
@ -802,7 +801,7 @@ export class ChannelStartupService {
}, },
}); });
await amqp.bindQueue(queueName, exchangeName, event); await amqp.bindQueue(queueName, exchangeName, queueName);
const message = { const message = {
event, event,
@ -816,7 +815,8 @@ export class ChannelStartupService {
if (expose && instanceApikey) { if (expose && instanceApikey) {
message['apikey'] = instanceApikey; message['apikey'] = instanceApikey;
} }
await amqp.publish(exchangeName, event, Buffer.from(JSON.stringify(message)));
await amqp.publish(exchangeName, queueName, Buffer.from(JSON.stringify(message)));
if (this.configService.get<Log>('LOG').LEVEL.includes('WEBHOOKS')) { if (this.configService.get<Log>('LOG').LEVEL.includes('WEBHOOKS')) {
const logData = { const logData = {

View File

@ -26,7 +26,6 @@ import makeWASocket, {
MessageUpsertType, MessageUpsertType,
MiscMessageGenerationOptions, MiscMessageGenerationOptions,
ParticipantAction, ParticipantAction,
PHONENUMBER_MCC,
prepareWAMessageMedia, prepareWAMessageMedia,
proto, proto,
useMultiFileAuthState, useMultiFileAuthState,
@ -45,7 +44,6 @@ import { isBase64, isURL } from 'class-validator';
import EventEmitter2 from 'eventemitter2'; import EventEmitter2 from 'eventemitter2';
// import ffmpeg from 'fluent-ffmpeg'; // import ffmpeg from 'fluent-ffmpeg';
import fs, { existsSync, readFileSync } from 'fs'; import fs, { existsSync, readFileSync } from 'fs';
import { parsePhoneNumber } from 'libphonenumber-js';
import Long from 'long'; import Long from 'long';
import NodeCache from 'node-cache'; import NodeCache from 'node-cache';
import { getMIMEType } from 'node-mime-types'; import { getMIMEType } from 'node-mime-types';
@ -676,61 +674,51 @@ export class BaileysStartupService extends ChannelStartupService {
} }
private async sendMobileCode() { private async sendMobileCode() {
const { registration } = this.client.authState.creds || null; // const { registration } = this.client.authState.creds || null;
// let phoneNumber = registration.phoneNumber || this.phoneNumber;
let phoneNumber = registration.phoneNumber || this.phoneNumber; // if (!phoneNumber.startsWith('+')) {
// phoneNumber = '+' + phoneNumber;
if (!phoneNumber.startsWith('+')) { // }
phoneNumber = '+' + phoneNumber; // if (!phoneNumber) {
} // this.logger.error('Phone number not found');
// return;
if (!phoneNumber) { // }
this.logger.error('Phone number not found'); // const parsedPhoneNumber = parsePhoneNumber(phoneNumber);
return; // if (!parsedPhoneNumber?.isValid()) {
} // this.logger.error('Phone number invalid');
// return;
const parsedPhoneNumber = parsePhoneNumber(phoneNumber); // }
// registration.phoneNumber = parsedPhoneNumber.format('E.164');
if (!parsedPhoneNumber?.isValid()) { // registration.phoneNumberCountryCode = parsedPhoneNumber.countryCallingCode;
this.logger.error('Phone number invalid'); // registration.phoneNumberNationalNumber = parsedPhoneNumber.nationalNumber;
return; // const mcc = await PHONENUMBER_MCC[parsedPhoneNumber.countryCallingCode];
} // if (!mcc) {
// this.logger.error('MCC not found');
registration.phoneNumber = parsedPhoneNumber.format('E.164'); // return;
registration.phoneNumberCountryCode = parsedPhoneNumber.countryCallingCode; // }
registration.phoneNumberNationalNumber = parsedPhoneNumber.nationalNumber; // registration.phoneNumberMobileCountryCode = mcc;
// registration.method = 'sms';
const mcc = await PHONENUMBER_MCC[parsedPhoneNumber.countryCallingCode]; // try {
if (!mcc) { // const response = await this.client.requestRegistrationCode(registration);
this.logger.error('MCC not found'); // if (['ok', 'sent'].includes(response?.status)) {
return; // this.logger.verbose('Registration code sent successfully');
} // return response;
// }
registration.phoneNumberMobileCountryCode = mcc; // } catch (error) {
registration.method = 'sms'; // this.logger.error(error);
// }
try {
const response = await this.client.requestRegistrationCode(registration);
if (['ok', 'sent'].includes(response?.status)) {
this.logger.verbose('Registration code sent successfully');
return response;
}
} catch (error) {
this.logger.error(error);
}
} }
public async receiveMobileCode(code: string) { public async receiveMobileCode(code: string) {
await this.client console.log(code);
.register(code.replace(/["']/g, '').trim().toLowerCase()) // await this.client
.then(async () => { // .register(code.replace(/["']/g, '').trim().toLowerCase())
this.logger.verbose('Registration code received successfully'); // .then(async () => {
}) // this.logger.verbose('Registration code received successfully');
.catch((error) => { // })
this.logger.error(error); // .catch((error) => {
}); // this.logger.error(error);
// });
} }
public async reloadConnection(): Promise<WASocket> { public async reloadConnection(): Promise<WASocket> {
@ -897,7 +885,7 @@ export class BaileysStartupService extends ChannelStartupService {
chats: Chat[]; chats: Chat[];
contacts: Contact[]; contacts: Contact[];
messages: proto.IWebMessageInfo[]; messages: proto.IWebMessageInfo[];
isLatest: boolean; isLatest?: boolean;
}, },
database: Database, database: Database,
) => { ) => {