feat: Track pdf templates Posthog events

This commit is contained in:
Ahmed Bouhuolia
2024-09-30 12:43:51 +02:00
parent 15ce6ac710
commit 3fe7babe00
5 changed files with 156 additions and 0 deletions

View File

@@ -69,6 +69,16 @@ export const BANK_RULE_CREATED = 'Bank rule created';
export const BANK_RULE_EDITED = 'Bank rule edited';
export const BANK_RULE_DELETED = 'Bank rule deleted';
export const PDF_TEMPLATE_CREATED = 'PDF template created';
export const PDF_TEMPLATE_EDITED = 'PDF template edited';
export const PDF_TEMPLATE_DELETED = 'PDF template deleted';
export const PDF_TEMPLATE_ASSIGNED_DEFAULT = 'PDF template assigned as default';
export const PAYMENT_METHOD_EDITED = 'Payment method edited';
export const PAYMENT_METHOD_DELETED = 'Payment method deleted';
export const INVOICE_PAYMENT_LINK_GENERATED = 'Invoice payment link generated';
// # Event Groups
export const ACCOUNT_GROUP = 'Account';
export const ITEM_GROUP = 'Item';

View File

@@ -0,0 +1,29 @@
import { Inject, Service } from 'typedi';
import { EventSubscriber } from '@/lib/EventPublisher/EventPublisher';
import { PosthogService } from '../PostHog';
import { INVOICE_PAYMENT_LINK_GENERATED } from '@/constants/event-tracker';
import events from '@/subscribers/events';
@Service()
export class PaymentLinkEventsTracker extends EventSubscriber {
@Inject()
private posthog: PosthogService;
/**
* Constructor method.
*/
public attach(bus) {
bus.subscribe(
events.saleInvoice.onPublicLinkGenerated,
this.handleTrackInvoicePublicLinkGeneratedEvent
);
}
public handleTrackInvoicePublicLinkGeneratedEvent({ tenantId }) {
this.posthog.trackEvent({
distinctId: `tenant-${tenantId}`,
event: INVOICE_PAYMENT_LINK_GENERATED,
properties: {},
});
}
}

View File

@@ -0,0 +1,44 @@
import { Inject, Service } from 'typedi';
import { EventSubscriber } from '@/lib/EventPublisher/EventPublisher';
import { PosthogService } from '../PostHog';
import events from '@/subscribers/events';
import {
PAYMENT_METHOD_EDITED,
PAYMENT_METHOD_DELETED,
} from '@/constants/event-tracker';
@Service()
export class PaymentMethodEventsTracker extends EventSubscriber {
@Inject()
private posthog: PosthogService;
/**
* Constructor method.
*/
public attach(bus) {
bus.subscribe(
events.paymentMethod.onEdited,
this.handleTrackPaymentMethodEditedEvent
);
bus.subscribe(
events.paymentMethod.onDeleted,
this.handleTrackPaymentMethodDeletedEvent
);
}
private handleTrackPaymentMethodEditedEvent = ({ tenantId }) => {
this.posthog.trackEvent({
distinctId: `tenant-${tenantId}`,
event: PAYMENT_METHOD_EDITED,
properties: {},
});
};
private handleTrackPaymentMethodDeletedEvent = ({ tenantId }) => {
this.posthog.trackEvent({
distinctId: `tenant-${tenantId}`,
event: PAYMENT_METHOD_DELETED,
properties: {},
});
};
}

View File

@@ -0,0 +1,67 @@
import { Inject, Service } from 'typedi';
import {
PDF_TEMPLATE_CREATED,
PDF_TEMPLATE_EDITED,
PDF_TEMPLATE_DELETED,
PDF_TEMPLATE_ASSIGNED_DEFAULT,
} from '@/constants/event-tracker';
import { PosthogService } from '../PostHog';
import { EventSubscriber } from '@/lib/EventPublisher/EventPublisher';
import events from '@/subscribers/events';
@Service()
export class PdfTemplateEventsTracker extends EventSubscriber {
@Inject()
private posthog: PosthogService;
public attach(bus) {
bus.subscribe(
events.pdfTemplate.onCreated,
this.handleTrackPdfTemplateCreatedEvent
);
bus.subscribe(
events.pdfTemplate.onEdited,
this.handleTrackEditedPdfTemplateEvent
);
bus.subscribe(
events.pdfTemplate.onDeleted,
this.handleTrackDeletedPdfTemplateEvent
);
bus.subscribe(
events.pdfTemplate.onAssignedDefault,
this.handleTrackAssignedAsDefaultPdfTemplateEvent
);
}
private handleTrackPdfTemplateCreatedEvent = ({ tenantId }) => {
this.posthog.trackEvent({
distinctId: `tenant-${tenantId}`,
event: PDF_TEMPLATE_CREATED,
properties: {},
});
};
private handleTrackEditedPdfTemplateEvent = ({ tenantId }) => {
this.posthog.trackEvent({
distinctId: `tenant-${tenantId}`,
event: PDF_TEMPLATE_EDITED,
properties: {},
});
};
private handleTrackDeletedPdfTemplateEvent = ({ tenantId }) => {
this.posthog.trackEvent({
distinctId: `tenant-${tenantId}`,
event: PDF_TEMPLATE_DELETED,
properties: {},
});
};
private handleTrackAssignedAsDefaultPdfTemplateEvent = ({ tenantId }) => {
this.posthog.trackEvent({
distinctId: `tenant-${tenantId}`,
event: PDF_TEMPLATE_ASSIGNED_DEFAULT,
properties: {},
});
};
}

View File

@@ -12,6 +12,9 @@ import { CustomerEventsTracker } from './CustomerEventsTracker';
import { VendorEventsTracker } from './VendorEventsTracker';
import { ManualJournalEventsTracker } from './ManualJournalEventsTracker';
import { BankRuleEventsTracker } from './BankRuleEventsTracker';
import { PdfTemplateEventsTracker } from './PdfTemplateEventsTracker';
import { PaymentMethodEventsTracker } from './PaymentMethodEventsTracker';
import { PaymentLinkEventsTracker } from './PaymentLinkEventsTracker';
export const EventsTrackerListeners = [
SaleInvoiceEventsTracker,
@@ -28,4 +31,7 @@ export const EventsTrackerListeners = [
VendorEventsTracker,
ManualJournalEventsTracker,
BankRuleEventsTracker,
PdfTemplateEventsTracker,
PaymentMethodEventsTracker,
PaymentLinkEventsTracker,
];