**TLDR** Refactor WebhoonAnalytics Graph to a more abstract version AnalyticsGraph (in analytics module). Thus enabling the components to be used on different instances (ex: new endpoint, new kind of graph). **In order to test:** 1. Set ANALYTICS_ENABLED to true 2. Set TINYBIRD_JWT_TOKEN to the ADMIN token from the workspace twenty_analytics_playground 3. Set TINYBIRD_JWT_TOKEN to the datasource or your admin token from the workspace twenty_analytics_playground 4. Create a Webhook in twenty and set wich events it needs to track 5. Run twenty-worker in order to make the webhooks work. 6. Do your tasks in order to populate the data 7. Enter to settings> webhook>your webhook and the statistics section should be displayed. --------- Co-authored-by: Félix Malfait <felix@twenty.com>
27 lines
674 B
TypeScript
27 lines
674 B
TypeScript
import { NivoLineInput } from '@/analytics/types/NivoLineInput';
|
|
|
|
export const mapServerlessFunctionErrorsToNivoLineInput = <
|
|
T extends { start: string },
|
|
>(
|
|
serverlessFunctionResult: (T & {
|
|
error_count?: number;
|
|
success_rate?: number;
|
|
})[],
|
|
type: 'ErrorCount' | 'SuccessRate',
|
|
): NivoLineInput[] => {
|
|
return [
|
|
{
|
|
id: type === 'ErrorCount' ? 'Error' : 'Success Rate',
|
|
data: serverlessFunctionResult.flatMap((dataRow) => [
|
|
{
|
|
x: new Date(dataRow.start),
|
|
y:
|
|
type === 'ErrorCount'
|
|
? (dataRow.error_count ?? 0)
|
|
: (dataRow.success_rate ?? 0),
|
|
},
|
|
]),
|
|
},
|
|
];
|
|
};
|