diff --git a/src/modules/transaction/transaction/domain/usecases/managers/batch-delete-transaction.manager.ts b/src/modules/transaction/transaction/domain/usecases/managers/batch-delete-transaction.manager.ts index 9e7510e..46b088f 100644 --- a/src/modules/transaction/transaction/domain/usecases/managers/batch-delete-transaction.manager.ts +++ b/src/modules/transaction/transaction/domain/usecases/managers/batch-delete-transaction.manager.ts @@ -7,7 +7,12 @@ import { import { TransactionModel } from '../../../data/models/transaction.model'; import { TransactionDeletedEvent } from '../../entities/event/transaction-deleted.event'; import { BatchResult } from 'src/core/response/domain/ok-response.interface'; -import { Injectable } from '@nestjs/common'; +import { + HttpStatus, + Injectable, + UnprocessableEntityException, +} from '@nestjs/common'; +import { STATUS } from 'src/core/strings/constants/base.constants'; @Injectable() export class BatchDeleteTransactionManager extends BaseBatchDeleteManager { @@ -16,6 +21,21 @@ export class BatchDeleteTransactionManager extends BaseBatchDeleteManager { + const allowDelete = [ + STATUS.DRAFT, + STATUS.ACTIVE, + STATUS.CANCEL, + STATUS.PENDING, + STATUS.EXPIRED, + ].includes(data.status); + + if (!allowDelete) { + throw new UnprocessableEntityException({ + statusCode: HttpStatus.UNPROCESSABLE_ENTITY, + message: `Gagal! data dengan status ${data.status} tidak bisa di hapus!`, + error: 'Unprocessable Entity', + }); + } return; } diff --git a/src/modules/transaction/transaction/domain/usecases/managers/delete-transaction.manager.ts b/src/modules/transaction/transaction/domain/usecases/managers/delete-transaction.manager.ts index de6e3e6..e3e4a13 100644 --- a/src/modules/transaction/transaction/domain/usecases/managers/delete-transaction.manager.ts +++ b/src/modules/transaction/transaction/domain/usecases/managers/delete-transaction.manager.ts @@ -1,4 +1,8 @@ -import { Injectable } from '@nestjs/common'; +import { + HttpStatus, + Injectable, + UnprocessableEntityException, +} from '@nestjs/common'; import { BaseDeleteManager } from 'src/core/modules/domain/usecase/managers/base-delete.manager'; import { TransactionEntity } from '../../entities/transaction.entity'; import { @@ -7,6 +11,7 @@ import { } from 'src/core/strings/constants/interface.constants'; import { TransactionModel } from '../../../data/models/transaction.model'; import { TransactionDeletedEvent } from '../../entities/event/transaction-deleted.event'; +import { STATUS } from 'src/core/strings/constants/base.constants'; @Injectable() export class DeleteTransactionManager extends BaseDeleteManager { @@ -15,6 +20,21 @@ export class DeleteTransactionManager extends BaseDeleteManager { + const allowDelete = [ + STATUS.DRAFT, + STATUS.ACTIVE, + STATUS.CANCEL, + STATUS.PENDING, + STATUS.EXPIRED, + ].includes(this.data.status); + + if (!allowDelete) { + throw new UnprocessableEntityException({ + statusCode: HttpStatus.UNPROCESSABLE_ENTITY, + message: `Gagal! data dengan status ${this.data.status} tidak bisa di hapus!`, + error: 'Unprocessable Entity', + }); + } return; }