mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-20 06:40:31 +00:00
Merge branch 'develop' into tracking-more-events
This commit is contained in:
@@ -54,6 +54,12 @@ export const TRANSACTIONS_LOCKING_PARTIALLY_UNLOCKED =
|
|||||||
export const TRANSACTIONS_LOCKING_PARTIALLY_UNLOCK_CANCELLED =
|
export const TRANSACTIONS_LOCKING_PARTIALLY_UNLOCK_CANCELLED =
|
||||||
'Transactions locking partially unlock cancelled';
|
'Transactions locking partially unlock cancelled';
|
||||||
|
|
||||||
|
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';
|
||||||
@@ -61,3 +67,21 @@ export const SALE_GROUP = 'Sale';
|
|||||||
export const PAYMENT_GROUP = 'Payment';
|
export const PAYMENT_GROUP = 'Payment';
|
||||||
export const BILL_GROUP = 'Bill';
|
export const BILL_GROUP = 'Bill';
|
||||||
export const EXPENSE_GROUP = 'Expense';
|
export const EXPENSE_GROUP = 'Expense';
|
||||||
|
|
||||||
|
export const MANUAL_JOURNAL_CREATED = 'Manual journal created';
|
||||||
|
export const MANUAL_JOURNAL_EDITED = 'Manual journal edited';
|
||||||
|
export const MANUAL_JOURNAL_DELETED = 'Manual journal deleted';
|
||||||
|
export const MANUAL_JOURNAL_PUBLISHED = 'Manual journal published';
|
||||||
|
|
||||||
|
export const CUSTOMER_CREATED = 'Customer created';
|
||||||
|
export const CUSTOMER_EDITED = 'Customer edited';
|
||||||
|
export const CUSTOMER_DELETED = 'Customer deleted';
|
||||||
|
|
||||||
|
export const VENDOR_CREATED = 'Vendor created';
|
||||||
|
export const VENDOR_EDITED = 'Vendor edited';
|
||||||
|
export const VENDOR_DELETED = 'Vendor deleted';
|
||||||
|
|
||||||
|
export const BANK_RULE_CREATED = 'Bank rule created';
|
||||||
|
export const BANK_RULE_EDITED = 'Bank rule edited';
|
||||||
|
export const BANK_RULE_DELETED = 'Bank rule deleted';
|
||||||
|
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ export interface ICustomerEventCreatingPayload {
|
|||||||
trx: Knex.Transaction;
|
trx: Knex.Transaction;
|
||||||
}
|
}
|
||||||
export interface ICustomerEventEditedPayload {
|
export interface ICustomerEventEditedPayload {
|
||||||
tenantId: number;
|
tenantId: number
|
||||||
customerId: number;
|
customerId: number;
|
||||||
customer: ICustomer;
|
customer: ICustomer;
|
||||||
trx: Knex.Transaction;
|
trx: Knex.Transaction;
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ export class EditCustomer {
|
|||||||
});
|
});
|
||||||
// Triggers `onCustomerEdited` event.
|
// Triggers `onCustomerEdited` event.
|
||||||
await this.eventPublisher.emitAsync(events.customers.onEdited, {
|
await this.eventPublisher.emitAsync(events.customers.onEdited, {
|
||||||
|
tenantId,
|
||||||
customerId,
|
customerId,
|
||||||
customer,
|
customer,
|
||||||
trx,
|
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 { AccountEventsTracker } from './AccountEventsTracker';
|
||||||
import { AuthenticationEventsTracker } from './AuthenticationEventsTracker';
|
import { AuthenticationEventsTracker } from './AuthenticationEventsTracker';
|
||||||
import { ItemEventsTracker } from './ItemEventsTracker';
|
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 = [
|
export const EventsTrackerListeners = [
|
||||||
SaleInvoiceEventsTracker,
|
SaleInvoiceEventsTracker,
|
||||||
@@ -17,5 +22,10 @@ export const EventsTrackerListeners = [
|
|||||||
AccountEventsTracker,
|
AccountEventsTracker,
|
||||||
ExpenseEventsTracker,
|
ExpenseEventsTracker,
|
||||||
AuthenticationEventsTracker,
|
AuthenticationEventsTracker,
|
||||||
ItemEventsTracker
|
ItemEventsTracker,
|
||||||
|
BankTransactionEventsTracker,
|
||||||
|
CustomerEventsTracker,
|
||||||
|
VendorEventsTracker,
|
||||||
|
ManualJournalEventsTracker,
|
||||||
|
BankRuleEventsTracker,
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user