Files
bigcapital/packages/server-nest/src/modules/EventsTracker/events/BankTransactionEventsTracker.ts
2025-01-08 11:59:55 +02:00

64 lines
2.2 KiB
TypeScript

import {
BANK_TRANSACTION_MATCHED,
BANK_TRANSACTION_EXCLUDED,
BANK_TRANSACTION_CATEGORIZED,
BANK_TRANSACTION_UNCATEGORIZED,
BANK_ACCOUNT_DISCONNECTED,
} from '../event-tracker';
import { Injectable } from '@nestjs/common';
import { EventTrackerService } from '../EventTracker.service';
import { OnEvent } from '@nestjs/event-emitter';
import { events } from '@/common/events/events';
import { IBankTransactionMatchedEventPayload } from '@/modules/BankingMatching/types';
import { IBankTransactionExcludedEventPayload } from '@/modules/BankingTransactionsExclude/types/BankTransactionsExclude.types';
import {
ICashflowTransactionCategorizedPayload,
ICashflowTransactionUncategorizedPayload,
} from '@/modules/BankingTransactions/types/BankingTransactions.types';
import { IBankAccountDisconnectedEventPayload } from '@/modules/BankingAccounts/types/BankAccounts.types';
@Injectable()
export class BankTransactionEventsTracker {
constructor(public readonly posthog: EventTrackerService) {}
@OnEvent(events.bankMatch.onMatched)
public handleTrackBankTransactionMatchedEvent({}: IBankTransactionMatchedEventPayload) {
this.posthog.trackEvent({
event: BANK_TRANSACTION_MATCHED,
properties: {},
});
}
@OnEvent(events.bankTransactions.onExcluded)
public handleTrackBankTransactionExcludedEvent({}: IBankTransactionExcludedEventPayload) {
this.posthog.trackEvent({
event: BANK_TRANSACTION_EXCLUDED,
properties: {},
});
}
@OnEvent(events.cashflow.onTransactionCategorized)
public handleTrackBankTransactionCategorizedEvent({}: ICashflowTransactionCategorizedPayload) {
this.posthog.trackEvent({
event: BANK_TRANSACTION_CATEGORIZED,
properties: {},
});
}
@OnEvent(events.cashflow.onTransactionUncategorized)
public handleTrackBankTransactionUncategorizedEvent({}: ICashflowTransactionUncategorizedPayload) {
this.posthog.trackEvent({
event: BANK_TRANSACTION_UNCATEGORIZED,
properties: {},
});
}
@OnEvent(events.bankAccount.onDisconnected)
public handleTrackBankAccountDisconnectedEvent({}: IBankAccountDisconnectedEventPayload) {
this.posthog.trackEvent({
event: BANK_ACCOUNT_DISCONNECTED,
properties: {},
});
}
}