41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import { Injectable } from '@nestjs/common';
|
|
import { OnEvent } from '@nestjs/event-emitter';
|
|
import { events } from '@/common/events/events';
|
|
import { ValidateBranchExistance } from '../../integrations/ValidateBranchExistance';
|
|
import {
|
|
IExpenseCreatingPayload,
|
|
IExpenseEventEditingPayload,
|
|
} from '@/modules/Expenses/Expenses.types';
|
|
@Injectable()
|
|
export class ExpenseBranchValidateSubscriber {
|
|
constructor(
|
|
private readonly validateBranchExistance: ValidateBranchExistance,
|
|
) { }
|
|
|
|
/**
|
|
* Validate branch existance once expense transaction creating.
|
|
* @param {IExpenseCreatingPayload} payload
|
|
*/
|
|
@OnEvent(events.expenses.onCreating, { suppressErrors: false })
|
|
async validateBranchExistanceOnExpenseCreating({
|
|
expenseDTO,
|
|
}: IExpenseCreatingPayload) {
|
|
await this.validateBranchExistance.validateTransactionBranchWhenActive(
|
|
expenseDTO.branchId,
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Validate branch existance once expense transaction editing.
|
|
* @param {IExpenseEventEditingPayload} payload
|
|
*/
|
|
@OnEvent(events.expenses.onEditing, { suppressErrors: false })
|
|
async validateBranchExistanceOnExpenseEditing({
|
|
expenseDTO,
|
|
}: IExpenseEventEditingPayload) {
|
|
await this.validateBranchExistance.validateTransactionBranchWhenActive(
|
|
expenseDTO.branchId,
|
|
);
|
|
}
|
|
}
|