chore: Update telemetry and add new integrations

Refactored the telemetry guard to use a new sendTelemetry utility function,
which allows for easier tracking of API routes. Also, added telemetry events
for message sending in the Chatwoot and Typebot services.

Additionally, updated the README.md to include new content creators and
added new integrations with Typebot and Chatwoot services.

Modified:
- README.md
- package.json
- src/api/guards/telemetry.guard.ts
- src/api/integrations/chatwoot/services/chatwoot.service.ts
- src/api/integrations/typebot/services/typebot.service.ts

Added:
- src/utils/sendTelemetry.ts
This commit is contained in:
Davidson Gomes
2024-07-15 12:43:20 -03:00
parent 22a24b1b88
commit a03ce984f6
6 changed files with 58 additions and 23 deletions

View File

@@ -21,6 +21,7 @@ import { Readable } from 'stream';
import { Chatwoot, ConfigService, HttpServer } from '../../../../config/env.config';
import { Logger } from '../../../../config/logger.config';
import i18next from '../../../../utils/i18n';
import { sendTelemetry } from '../../../../utils/sendTelemetry';
import { ICache } from '../../../abstract/abstract.cache';
import { InstanceDto } from '../../../dto/instance.dto';
import { Options, Quoted, SendAudioDto, SendMediaDto, SendTextDto } from '../../../dto/sendMessage.dto';
@@ -1034,6 +1035,8 @@ export class ChatwootService {
quoted: options?.quoted,
};
sendTelemetry('/message/sendWhatsAppAudio');
const messageSent = await waInstance?.audioWhatsapp(data, true);
return messageSent;
@@ -1052,6 +1055,8 @@ export class ChatwootService {
quoted: options?.quoted,
};
sendTelemetry('/message/sendMedia');
if (caption) {
data.caption = caption;
}
@@ -1290,6 +1295,8 @@ export class ChatwootService {
quoted: await this.getQuotedMessage(body, instance),
};
sendTelemetry('/message/sendText');
let messageSent: any;
try {
messageSent = await waInstance?.textMessage(data, true);
@@ -1380,6 +1387,8 @@ export class ChatwootService {
delay: 1200,
};
sendTelemetry('/message/sendText');
await waInstance?.textMessage(data);
}

View File

@@ -3,6 +3,7 @@ import axios from 'axios';
import { ConfigService, S3, Typebot } from '../../../../config/env.config';
import { Logger } from '../../../../config/logger.config';
import { sendTelemetry } from '../../../../utils/sendTelemetry';
import { InstanceDto } from '../../../dto/instance.dto';
import { PrismaRepository } from '../../../repository/repository.service';
import { WAMonitoringService } from '../../../services/monitor.service';
@@ -1091,6 +1092,8 @@ export class TypebotService {
},
true,
);
sendTelemetry('/message/sendText');
}
if (message.type === 'image') {
@@ -1103,6 +1106,8 @@ export class TypebotService {
},
true,
);
sendTelemetry('/message/sendMedia');
}
if (message.type === 'video') {
@@ -1115,6 +1120,8 @@ export class TypebotService {
},
true,
);
sendTelemetry('/message/sendMedia');
}
if (message.type === 'audio') {
@@ -1127,6 +1134,8 @@ export class TypebotService {
},
true,
);
sendTelemetry('/message/sendWhatsAppAudio');
}
const wait = findItemAndGetSecondsToWait(clientSideActions, message.id);
@@ -1156,6 +1165,8 @@ export class TypebotService {
},
true,
);
sendTelemetry('/message/sendText');
}
await prismaRepository.typebotSession.update({
@@ -1588,6 +1599,8 @@ export class TypebotService {
},
true,
);
sendTelemetry('/message/sendText');
}
return;
}
@@ -1700,6 +1713,8 @@ export class TypebotService {
},
true,
);
sendTelemetry('/message/sendText');
}
return;
}
@@ -1779,6 +1794,8 @@ export class TypebotService {
},
true,
);
sendTelemetry('/message/sendText');
}
return;
}