mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-16 12:50:38 +00:00
Merge branch 'develop' into tracking-more-events
This commit is contained in:
@@ -65,6 +65,7 @@ export class EditCustomer {
|
||||
});
|
||||
// Triggers `onCustomerEdited` event.
|
||||
await this.eventPublisher.emitAsync(events.customers.onEdited, {
|
||||
tenantId,
|
||||
customerId,
|
||||
customer,
|
||||
trx,
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
import { Inject, Service } from 'typedi';
|
||||
import { EventSubscriber } from '@/lib/EventPublisher/EventPublisher';
|
||||
import {
|
||||
IBankRuleEventCreatedPayload,
|
||||
IBankRuleEventEditedPayload,
|
||||
IBankRuleEventDeletedPayload,
|
||||
} from '@/services/Banking/Rules/types'; // Updated import path for interfaces
|
||||
import { PosthogService } from '../PostHog';
|
||||
import events from '@/subscribers/events';
|
||||
import {
|
||||
BANK_RULE_CREATED,
|
||||
BANK_RULE_EDITED,
|
||||
BANK_RULE_DELETED,
|
||||
} from '@/constants/event-tracker';
|
||||
|
||||
@Service()
|
||||
export class BankRuleEventsTracker extends EventSubscriber {
|
||||
@Inject()
|
||||
private posthog: PosthogService;
|
||||
|
||||
/**
|
||||
* Constructor method.
|
||||
*/
|
||||
public attach(bus) {
|
||||
bus.subscribe(
|
||||
events.bankRules.onCreated,
|
||||
this.handleTrackBankRuleCreatedEvent
|
||||
);
|
||||
bus.subscribe(
|
||||
events.bankRules.onEdited,
|
||||
this.handleTrackEditedBankRuleEvent
|
||||
);
|
||||
bus.subscribe(
|
||||
events.bankRules.onDeleted,
|
||||
this.handleTrackDeletedBankRuleEvent
|
||||
);
|
||||
}
|
||||
|
||||
private handleTrackBankRuleCreatedEvent = ({
|
||||
tenantId,
|
||||
}: IBankRuleEventCreatedPayload) => {
|
||||
this.posthog.trackEvent({
|
||||
distinctId: `tenant-${tenantId}`,
|
||||
event: BANK_RULE_CREATED,
|
||||
properties: {},
|
||||
});
|
||||
};
|
||||
|
||||
private handleTrackEditedBankRuleEvent = ({
|
||||
tenantId,
|
||||
}: IBankRuleEventEditedPayload) => {
|
||||
this.posthog.trackEvent({
|
||||
distinctId: `tenant-${tenantId}`,
|
||||
event: BANK_RULE_EDITED,
|
||||
properties: {},
|
||||
});
|
||||
};
|
||||
|
||||
private handleTrackDeletedBankRuleEvent = ({
|
||||
tenantId,
|
||||
}: IBankRuleEventDeletedPayload) => {
|
||||
this.posthog.trackEvent({
|
||||
distinctId: `tenant-${tenantId}`,
|
||||
event: BANK_RULE_DELETED,
|
||||
properties: {},
|
||||
});
|
||||
};
|
||||
}
|
||||
@@ -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: {},
|
||||
});
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
import { Inject, Service } from 'typedi';
|
||||
import { EventSubscriber } from '@/lib/EventPublisher/EventPublisher';
|
||||
import {
|
||||
IManualJournalEventCreatedPayload,
|
||||
IManualJournalEventEditedPayload,
|
||||
IManualJournalEventDeletedPayload,
|
||||
} from '@/interfaces';
|
||||
import { PosthogService } from '../PostHog';
|
||||
import events from '@/subscribers/events';
|
||||
import {
|
||||
MANUAL_JOURNAL_CREATED,
|
||||
MANUAL_JOURNAL_EDITED,
|
||||
MANUAL_JOURNAL_DELETED,
|
||||
} from '@/constants/event-tracker';
|
||||
|
||||
@Service()
|
||||
export class ManualJournalEventsTracker extends EventSubscriber {
|
||||
@Inject()
|
||||
private posthog: PosthogService;
|
||||
|
||||
/**
|
||||
* Constructor method.
|
||||
*/
|
||||
public attach(bus) {
|
||||
bus.subscribe(
|
||||
events.manualJournals.onCreated,
|
||||
this.handleTrackManualJournalCreatedEvent
|
||||
);
|
||||
bus.subscribe(
|
||||
events.manualJournals.onEdited,
|
||||
this.handleTrackEditedManualJournalEvent
|
||||
);
|
||||
bus.subscribe(
|
||||
events.manualJournals.onDeleted,
|
||||
this.handleTrackDeletedManualJournalEvent
|
||||
);
|
||||
}
|
||||
|
||||
private handleTrackManualJournalCreatedEvent = ({
|
||||
tenantId,
|
||||
}: IManualJournalEventCreatedPayload) => {
|
||||
this.posthog.trackEvent({
|
||||
distinctId: `tenant-${tenantId}`,
|
||||
event: MANUAL_JOURNAL_CREATED,
|
||||
properties: {},
|
||||
});
|
||||
};
|
||||
|
||||
private handleTrackEditedManualJournalEvent = ({
|
||||
tenantId,
|
||||
}: IManualJournalEventEditedPayload) => {
|
||||
this.posthog.trackEvent({
|
||||
distinctId: `tenant-${tenantId}`,
|
||||
event: MANUAL_JOURNAL_EDITED,
|
||||
properties: {},
|
||||
});
|
||||
};
|
||||
|
||||
private handleTrackDeletedManualJournalEvent = ({
|
||||
tenantId,
|
||||
}: IManualJournalEventDeletedPayload) => {
|
||||
this.posthog.trackEvent({
|
||||
distinctId: `tenant-${tenantId}`,
|
||||
event: MANUAL_JOURNAL_DELETED,
|
||||
properties: {},
|
||||
});
|
||||
};
|
||||
}
|
||||
@@ -7,6 +7,11 @@ import { ExpenseEventsTracker } from './ExpenseEventsTracker';
|
||||
import { AccountEventsTracker } from './AccountEventsTracker';
|
||||
import { AuthenticationEventsTracker } from './AuthenticationEventsTracker';
|
||||
import { ItemEventsTracker } from './ItemEventsTracker';
|
||||
import { BankTransactionEventsTracker } from './BankTransactionEventsTracker';
|
||||
import { CustomerEventsTracker } from './CustomerEventsTracker';
|
||||
import { VendorEventsTracker } from './VendorEventsTracker';
|
||||
import { ManualJournalEventsTracker } from './ManualJournalEventsTracker';
|
||||
import { BankRuleEventsTracker } from './BankRuleEventsTracker';
|
||||
|
||||
export const EventsTrackerListeners = [
|
||||
SaleInvoiceEventsTracker,
|
||||
@@ -17,5 +22,10 @@ export const EventsTrackerListeners = [
|
||||
AccountEventsTracker,
|
||||
ExpenseEventsTracker,
|
||||
AuthenticationEventsTracker,
|
||||
ItemEventsTracker
|
||||
ItemEventsTracker,
|
||||
BankTransactionEventsTracker,
|
||||
CustomerEventsTracker,
|
||||
VendorEventsTracker,
|
||||
ManualJournalEventsTracker,
|
||||
BankRuleEventsTracker,
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user