diff --git a/prisma/migrations/20240610144159_create_column_profile_name_instance/migration.sql b/prisma/migrations/20240610144159_create_column_profile_name_instance/migration.sql new file mode 100644 index 00000000..5fd02895 --- /dev/null +++ b/prisma/migrations/20240610144159_create_column_profile_name_instance/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "Instance" ADD COLUMN "profileName" VARCHAR(100); diff --git a/prisma/mysql-schema.prisma b/prisma/mysql-schema.prisma index 3e2c0d69..4d35a001 100644 --- a/prisma/mysql-schema.prisma +++ b/prisma/mysql-schema.prisma @@ -50,6 +50,7 @@ model Instance { name String @unique @db.VarChar(255) connectionStatus InstanceConnectionStatus @default(open) ownerJid String? @db.VarChar(100) + profileName String? @db.VarChar(100) profilePicUrl String? @db.VarChar(500) integration String? @db.VarChar(100) number String? @db.VarChar(100) diff --git a/prisma/postgresql-schema.prisma b/prisma/postgresql-schema.prisma index cabed020..e9d4a85a 100644 --- a/prisma/postgresql-schema.prisma +++ b/prisma/postgresql-schema.prisma @@ -50,6 +50,7 @@ model Instance { name String @unique @db.VarChar(255) connectionStatus InstanceConnectionStatus @default(open) ownerJid String? @db.VarChar(100) + profileName String? @db.VarChar(100) profilePicUrl String? @db.VarChar(500) integration String? @db.VarChar(100) number String? @db.VarChar(100) diff --git a/src/api/controllers/instance.controller.ts b/src/api/controllers/instance.controller.ts index 29118aa7..7d40034c 100644 --- a/src/api/controllers/instance.controller.ts +++ b/src/api/controllers/instance.controller.ts @@ -510,7 +510,7 @@ export class InstanceController { const env = this.configService.get('AUTHENTICATION').API_KEY; let name = instanceName; - let arrayReturn = false; + // let arrayReturn = false; if (env.KEY !== key) { const instanceByKey = await this.prismaRepository.instance.findUnique({ @@ -521,14 +521,14 @@ export class InstanceController { if (instanceByKey) { name = instanceByKey.name; - arrayReturn = true; + // arrayReturn = true; } else { throw new UnauthorizedException(); } } if (name) { - return this.waMonitor.instanceInfo(name, arrayReturn); + return this.waMonitor.instanceInfo(name); } else if (instanceId || number) { return this.waMonitor.instanceInfoById(instanceId, number); } diff --git a/src/api/services/channels/whatsapp.baileys.service.ts b/src/api/services/channels/whatsapp.baileys.service.ts index 0c0bb95a..97ce67b5 100644 --- a/src/api/services/channels/whatsapp.baileys.service.ts +++ b/src/api/services/channels/whatsapp.baileys.service.ts @@ -1,5 +1,6 @@ import ffmpegPath from '@ffmpeg-installer/ffmpeg'; import { Boom } from '@hapi/boom'; +import { Instance } from '@prisma/client'; import makeWASocket, { AnyMessageContent, BufferedEventData, @@ -419,6 +420,7 @@ export class BaileysStartupService extends ChannelStartupService { where: { id: this.instanceId }, data: { ownerJid: this.instance.wuid, + profileName: (await this.getProfileName()) as string, profilePicUrl: this.instance.profilePictureUrl, connectionStatus: 'open', }, @@ -1650,15 +1652,15 @@ export class BaileysStartupService extends ChannelStartupService { website: business?.website?.shift(), }; } else { - const info = await waMonitor.instanceInfo(instanceName); + const info: Instance = await waMonitor.instanceInfo(instanceName); const business = await this.fetchBusinessProfile(jid); return { wuid: jid, - // name: info?.instance?.profileName, + name: info?.profileName, numberExists: true, - // picture: info?.instance?.profilePictureUrl, - // status: info?.instance?.profileStatus, + picture: info?.profilePicUrl, + status: info?.connectionStatus, isBusiness: business.isBusiness, email: business?.email, description: business?.description, diff --git a/src/api/services/monitor.service.ts b/src/api/services/monitor.service.ts index 9bf49136..166a4a0b 100644 --- a/src/api/services/monitor.service.ts +++ b/src/api/services/monitor.service.ts @@ -63,7 +63,7 @@ export class WAMonitoringService { } } - public async instanceInfo(instanceName?: string, arrayReturn = false) { + public async instanceInfo(instanceName?: string): Promise { if (instanceName && !this.waInstances[instanceName]) { throw new NotFoundException(`Instance "${instanceName}" not found`); }