import { Inject, Service } from 'typedi'; import { CreateBankRuleService } from './CreateBankRule'; import { DeleteBankRuleSerivce } from './DeleteBankRule'; import { EditBankRuleService } from './EditBankRule'; import { GetBankRuleService } from './GetBankRule'; import { GetBankRulesService } from './GetBankRules'; import { ICreateBankRuleDTO, IEditBankRuleDTO } from './types'; @Service() export class BankRulesApplication { @Inject() private createBankRuleService: CreateBankRuleService; @Inject() private editBankRuleService: EditBankRuleService; @Inject() private deleteBankRuleService: DeleteBankRuleSerivce; @Inject() private getBankRuleService: GetBankRuleService; @Inject() private getBankRulesService: GetBankRulesService; /** * Creates new bank rule. * @param {number} tenantId * @param {ICreateBankRuleDTO} createRuleDTO * @returns {Promise} */ public createBankRule( tenantId: number, createRuleDTO: ICreateBankRuleDTO ): Promise { return this.createBankRuleService.createBankRule(tenantId, createRuleDTO); } /** * Edits the given bank rule. * @param {number} tenantId * @param {IEditBankRuleDTO} editRuleDTO * @returns {Promise} */ public editBankRule( tenantId: number, ruleId: number, editRuleDTO: IEditBankRuleDTO ): Promise { return this.editBankRuleService.editBankRule(tenantId, ruleId, editRuleDTO); } /** * Deletes the given bank rule. * @param {number} tenantId * @param {number} ruleId * @returns {Promise} */ public deleteBankRule(tenantId: number, ruleId: number): Promise { return this.deleteBankRuleService.deleteBankRule(tenantId, ruleId); } /** * Retrieves the given bank rule. * @param {number} tenantId * @param {number} ruleId * @returns {Promise} */ public getBankRule(tenantId: number, ruleId: number): Promise { return this.getBankRuleService.getBankRule(tenantId, ruleId); } /** * Retrieves the bank rules of the given account. * @param {number} tenantId * @param {number} accountId * @returns {Promise} */ public getBankRules(tenantId: number): Promise { return this.getBankRulesService.getBankRules(tenantId); } }