feat: Organization configuration and logo in chatwoot bot contact

This commit is contained in:
Davidson Gomes 2024-06-11 10:09:04 -03:00
parent a8937bd8b1
commit 31258a9b85
10 changed files with 24 additions and 18 deletions

View File

@ -7,6 +7,7 @@
* Added typebot integration activation * Added typebot integration activation
* Now you can register several typebots with triggers * Now you can register several typebots with triggers
* Media sent to typebot now goes as a template string, example: imageMessage:MESSAGE_ID * Media sent to typebot now goes as a template string, example: imageMessage:MESSAGE_ID
* Organization configuration and logo in chatwoot bot contact
### Fixed ### Fixed

View File

@ -0,0 +1,3 @@
-- AlterTable
ALTER TABLE "Chatwoot" ADD COLUMN "logo" VARCHAR(500),
ADD COLUMN "organization" VARCHAR(100);

View File

@ -171,6 +171,8 @@ model Chatwoot {
importContacts Boolean? @default(false) importContacts Boolean? @default(false)
importMessages Boolean? @default(false) importMessages Boolean? @default(false)
daysLimitImportMessages Int? @db.Int daysLimitImportMessages Int? @db.Int
organization String? @db.VarChar(100)
logoUrl String? @db.VarChar(500)
createdAt DateTime? @default(now()) @db.Date createdAt DateTime? @default(now()) @db.Date
updatedAt DateTime @updatedAt @db.Date updatedAt DateTime @updatedAt @db.Date
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)

View File

@ -170,6 +170,8 @@ model Chatwoot {
importContacts Boolean? @default(false) @db.Boolean importContacts Boolean? @default(false) @db.Boolean
importMessages Boolean? @default(false) @db.Boolean importMessages Boolean? @default(false) @db.Boolean
daysLimitImportMessages Int? @db.Integer daysLimitImportMessages Int? @db.Integer
organization String? @db.VarChar(100)
logo String? @db.VarChar(500)
createdAt DateTime? @default(now()) @db.Timestamp createdAt DateTime? @default(now()) @db.Timestamp
updatedAt DateTime @updatedAt @db.Timestamp updatedAt DateTime @updatedAt @db.Timestamp
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)

View File

@ -86,6 +86,8 @@ export class InstanceController {
chatwootMergeBrazilContacts, chatwootMergeBrazilContacts,
chatwootImportMessages, chatwootImportMessages,
chatwootDaysLimitImportMessages, chatwootDaysLimitImportMessages,
chatwootOrganization,
chatwootLogo,
}: InstanceDto) { }: InstanceDto) {
try { try {
await this.authService.checkDuplicateToken(token); await this.authService.checkDuplicateToken(token);
@ -383,6 +385,8 @@ export class InstanceController {
mergeBrazilContacts: chatwootMergeBrazilContacts ?? false, mergeBrazilContacts: chatwootMergeBrazilContacts ?? false,
importMessages: chatwootImportMessages ?? true, importMessages: chatwootImportMessages ?? true,
daysLimitImportMessages: chatwootDaysLimitImportMessages ?? 60, daysLimitImportMessages: chatwootDaysLimitImportMessages ?? 60,
organization: chatwootOrganization,
logo: chatwootLogo,
autoCreate: true, autoCreate: true,
}); });
} catch (error) { } catch (error) {

View File

@ -29,6 +29,8 @@ export class InstanceDto {
chatwootImportMessages?: boolean; chatwootImportMessages?: boolean;
chatwootDaysLimitImportMessages?: number; chatwootDaysLimitImportMessages?: number;
chatwootNameInbox?: string; chatwootNameInbox?: string;
chatwootOrganization?: string;
chatwootLogo?: string;
websocketEnabled?: boolean; websocketEnabled?: boolean;
websocketEvents?: string[]; websocketEvents?: string[];
rabbitmqEnabled?: boolean; rabbitmqEnabled?: boolean;

View File

@ -39,22 +39,6 @@ export class ChatwootController {
if (data.signMsg === false) data.signDelimiter = null; if (data.signMsg === false) data.signDelimiter = null;
} }
if (!data.enabled) {
data.accountId = '';
data.token = '';
data.url = '';
data.signMsg = false;
data.signDelimiter = null;
data.reopenConversation = false;
data.conversationPending = false;
data.importContacts = false;
data.importMessages = false;
data.mergeBrazilContacts = false;
data.daysLimitImportMessages = 0;
data.autoCreate = false;
data.nameInbox = '';
}
if (!data.nameInbox || data.nameInbox === '') { if (!data.nameInbox || data.nameInbox === '') {
data.nameInbox = instance.instanceName; data.nameInbox = instance.instanceName;
} }

View File

@ -14,4 +14,6 @@ export class ChatwootDto {
importMessages?: boolean; importMessages?: boolean;
daysLimitImportMessages?: number; daysLimitImportMessages?: number;
autoCreate?: boolean; autoCreate?: boolean;
organization?: string;
logo?: string;
} }

View File

@ -115,6 +115,8 @@ export class ChatwootService {
`${urlServer}/chatwoot/webhook/${encodeURIComponent(instance.instanceName)}`, `${urlServer}/chatwoot/webhook/${encodeURIComponent(instance.instanceName)}`,
true, true,
data.number, data.number,
data.organization,
data.logo,
); );
} }
return data; return data;
@ -161,6 +163,8 @@ export class ChatwootService {
webhookUrl: string, webhookUrl: string,
qrcode: boolean, qrcode: boolean,
number: string, number: string,
organization?: string,
logo?: string,
) { ) {
const client = await this.clientCw(instance); const client = await this.clientCw(instance);
@ -218,8 +222,8 @@ export class ChatwootService {
'123456', '123456',
inboxId, inboxId,
false, false,
'EvolutionAPI', organization ? organization : 'EvolutionAPI',
'https://evolution-api.com/files/evolution-api-favicon.png', logo ? logo : 'https://evolution-api.com/files/evolution-api-favicon.png',
)) as any); )) as any);
if (!contact) { if (!contact) {

View File

@ -314,6 +314,8 @@ export class ChannelStartupService {
importContacts: data.importContacts, importContacts: data.importContacts,
importMessages: data.importMessages, importMessages: data.importMessages,
daysLimitImportMessages: data.daysLimitImportMessages, daysLimitImportMessages: data.daysLimitImportMessages,
organization: data.organization,
logo: data.logo,
}, },
}); });