Skip to content

Commit

Permalink
check whether amount is less than 0 for transfer transaction
Browse files Browse the repository at this point in the history
  • Loading branch information
mayswind committed Oct 28, 2024
1 parent 37ff0d1 commit a1b7c8a
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 0 deletions.
8 changes: 8 additions & 0 deletions pkg/api/transactions.go
Original file line number Diff line number Diff line change
Expand Up @@ -689,6 +689,10 @@ func (a *TransactionsApi) TransactionCreateHandler(c *core.WebContext) (any, *er
return nil, errs.ErrTransactionDestinationAmountCannotBeSet
}

if transactionCreateReq.Type == models.TRANSACTION_TYPE_TRANSFER && (transactionCreateReq.SourceAmount < 0 || transactionCreateReq.DestinationAmount < 0) {
return nil, errs.ErrTransferTransactionAmountCannotBeLessThanZero
}

uid := c.GetCurrentUid()
user, err := a.users.GetUserById(c, uid)

Expand Down Expand Up @@ -819,6 +823,10 @@ func (a *TransactionsApi) TransactionModifyHandler(c *core.WebContext) (any, *er
return nil, errs.ErrTransactionTypeInvalid
}

if transaction.Type == models.TRANSACTION_DB_TYPE_TRANSFER_OUT && (transactionModifyReq.SourceAmount < 0 || transactionModifyReq.DestinationAmount < 0) {
return nil, errs.ErrTransferTransactionAmountCannotBeLessThanZero
}

allTransactionTagIds, err := a.transactionTags.GetAllTagIdsOfTransactions(c, uid, []int64{transaction.TransactionId})

if err != nil {
Expand Down
1 change: 1 addition & 0 deletions pkg/errs/transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,5 @@ var (
ErrNoDataToImport = NewSystemError(NormalSubcategoryTransaction, 27, http.StatusBadRequest, "no data to import")
ErrCannotAddTransactionBeforeBalanceModificationTransaction = NewSystemError(NormalSubcategoryTransaction, 28, http.StatusBadRequest, "cannot add transaction before balance modification transaction")
ErrBalanceModificationTransactionCannotModifyTime = NewSystemError(NormalSubcategoryTransaction, 29, http.StatusBadRequest, "balance modification transaction cannot modify transaction time")
ErrTransferTransactionAmountCannotBeLessThanZero = NewNormalError(NormalSubcategoryTransaction, 30, http.StatusBadRequest, "transfer transaction amount cannot be less than zero")
)
1 change: 1 addition & 0 deletions src/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -1081,6 +1081,7 @@
"no data to import": "No data to import",
"cannot add transaction before balance modification transaction": "You cannot add transaction before the balance modification transaction",
"balance modification transaction cannot modify transaction time": "You cannot modify transaction time for balance modification transaction",
"transfer transaction amount cannot be less than zero": "Amount cannot be less than 0 for transfer transaction",
"transaction category id is invalid": "Transaction category ID is invalid",
"transaction category not found": "Transaction category is not found",
"transaction category type is invalid": "Transaction category type is invalid",
Expand Down
1 change: 1 addition & 0 deletions src/locales/zh_Hans.json
Original file line number Diff line number Diff line change
Expand Up @@ -1081,6 +1081,7 @@
"no data to import": "没有可以导入的数据",
"cannot add transaction before balance modification transaction": "不能添加早于修改余额的交易",
"balance modification transaction cannot modify transaction time": "您无法对修改余额的交易修改交易时间",
"transfer transaction amount cannot be less than zero": "转账交易的金额不能小于0",
"transaction category id is invalid": "交易分类ID无效",
"transaction category not found": "交易分类不存在",
"transaction category type is invalid": "交易分类类型无效",
Expand Down

0 comments on commit a1b7c8a

Please sign in to comment.