mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-19 14:20:31 +00:00
feat: Track banking service events
This commit is contained in:
@@ -34,6 +34,12 @@ export const ITEM_EVENT_DELETED = 'Item deleted';
|
|||||||
export const AUTH_SIGNED_UP = 'Auth Signed-up';
|
export const AUTH_SIGNED_UP = 'Auth Signed-up';
|
||||||
export const AUTH_RESET_PASSWORD = 'Auth reset password';
|
export const AUTH_RESET_PASSWORD = 'Auth reset password';
|
||||||
|
|
||||||
|
export const BANK_TRANSACTION_MATCHED = 'Bank transaction matching deleted';
|
||||||
|
export const BANK_TRANSACTION_EXCLUDED = 'Bank transaction excluded';
|
||||||
|
export const BANK_TRANSACTION_CATEGORIZED = 'Bank transaction categorized';
|
||||||
|
export const BANK_TRANSACTION_UNCATEGORIZED = 'Bank transaction uncategorized';
|
||||||
|
export const BANK_ACCOUNT_DISCONNECTED = 'Bank account disconnected';
|
||||||
|
|
||||||
export const ACCOUNT_GROUP = 'Account';
|
export const ACCOUNT_GROUP = 'Account';
|
||||||
export const ITEM_GROUP = 'Item';
|
export const ITEM_GROUP = 'Item';
|
||||||
export const AUTH_GROUP = 'Auth';
|
export const AUTH_GROUP = 'Auth';
|
||||||
|
|||||||
@@ -0,0 +1,97 @@
|
|||||||
|
import { Inject, Service } from 'typedi';
|
||||||
|
import { EventSubscriber } from '@/lib/EventPublisher/EventPublisher';
|
||||||
|
import { PosthogService } from '../PostHog';
|
||||||
|
import events from '@/subscribers/events';
|
||||||
|
import {
|
||||||
|
BANK_TRANSACTION_MATCHED,
|
||||||
|
BANK_TRANSACTION_EXCLUDED,
|
||||||
|
BANK_TRANSACTION_CATEGORIZED,
|
||||||
|
BANK_TRANSACTION_UNCATEGORIZED,
|
||||||
|
BANK_ACCOUNT_DISCONNECTED,
|
||||||
|
} from '@/constants/event-tracker';
|
||||||
|
import { IBankTransactionMatchedEventPayload } from '@/services/Banking/Matching/types';
|
||||||
|
import { IBankAccountDisconnectedEventPayload } from '@/services/Banking/BankAccounts/types';
|
||||||
|
import {
|
||||||
|
ICashflowTransactionCategorizedPayload,
|
||||||
|
ICashflowTransactionUncategorizedPayload,
|
||||||
|
} from '@/interfaces';
|
||||||
|
import { IBankTransactionExcludedEventPayload } from '@/services/Banking/Exclude/_types';
|
||||||
|
|
||||||
|
@Service()
|
||||||
|
export class BankTransactionEventsTracker extends EventSubscriber {
|
||||||
|
@Inject()
|
||||||
|
private posthog: PosthogService;
|
||||||
|
|
||||||
|
public attach(bus) {
|
||||||
|
bus.subscribe(
|
||||||
|
events.bankMatch.onMatched,
|
||||||
|
this.handleTrackBankTransactionMatchedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.bankTransactions.onExcluded,
|
||||||
|
this.handleTrackBankTransactionExcludedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.cashflow.onTransactionCategorized,
|
||||||
|
this.handleTrackBankTransactionCategorizedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.cashflow.onTransactionUncategorized,
|
||||||
|
this.handleTrackBankTransactionUncategorizedEvent
|
||||||
|
);
|
||||||
|
bus.subscribe(
|
||||||
|
events.bankAccount.onDisconnected,
|
||||||
|
this.handleTrackBankAccountDisconnectedEvent
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private handleTrackBankTransactionMatchedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: IBankTransactionMatchedEventPayload) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: BANK_TRANSACTION_MATCHED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackBankTransactionExcludedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: IBankTransactionExcludedEventPayload) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: BANK_TRANSACTION_EXCLUDED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackBankTransactionCategorizedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ICashflowTransactionCategorizedPayload) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: BANK_TRANSACTION_CATEGORIZED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackBankTransactionUncategorizedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: ICashflowTransactionUncategorizedPayload) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: BANK_TRANSACTION_UNCATEGORIZED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
private handleTrackBankAccountDisconnectedEvent = ({
|
||||||
|
tenantId,
|
||||||
|
}: IBankAccountDisconnectedEventPayload) => {
|
||||||
|
this.posthog.trackEvent({
|
||||||
|
distinctId: `tenant-${tenantId}`,
|
||||||
|
event: BANK_ACCOUNT_DISCONNECTED,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -7,6 +7,7 @@ import { ExpenseEventsTracker } from './ExpenseEventsTracker';
|
|||||||
import { AccountEventsTracker } from './AccountEventsTracker';
|
import { AccountEventsTracker } from './AccountEventsTracker';
|
||||||
import { AuthenticationEventsTracker } from './AuthenticationEventsTracker';
|
import { AuthenticationEventsTracker } from './AuthenticationEventsTracker';
|
||||||
import { ItemEventsTracker } from './ItemEventsTracker';
|
import { ItemEventsTracker } from './ItemEventsTracker';
|
||||||
|
import { BankTransactionEventsTracker } from './BankTransactionEventsTracker';
|
||||||
|
|
||||||
export const EventsTrackerListeners = [
|
export const EventsTrackerListeners = [
|
||||||
SaleInvoiceEventsTracker,
|
SaleInvoiceEventsTracker,
|
||||||
@@ -17,5 +18,6 @@ export const EventsTrackerListeners = [
|
|||||||
AccountEventsTracker,
|
AccountEventsTracker,
|
||||||
ExpenseEventsTracker,
|
ExpenseEventsTracker,
|
||||||
AuthenticationEventsTracker,
|
AuthenticationEventsTracker,
|
||||||
ItemEventsTracker
|
ItemEventsTracker,
|
||||||
|
BankTransactionEventsTracker,
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user