Files
bigcapital/packages/server/src/services/EventsTracker/events/PdfTemplateEventsTracker.ts
2024-09-30 12:43:51 +02:00

68 lines
1.8 KiB
TypeScript

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: {},
});
};
}