diff --git a/pkg/api/accounts.go b/pkg/api/accounts.go index a7a28f9a..9142d85b 100644 --- a/pkg/api/accounts.go +++ b/pkg/api/accounts.go @@ -274,7 +274,44 @@ func (a *AccountsApi) AccountModifyHandler(c *core.Context) (interface{}, *errs. log.InfofWithRequestId(c, "[accounts.AccountModifyHandler] user \"uid:%d\" has updated account \"id:%d\" successfully", uid, accountModifyReq.Id) - return true, nil + accountRespMap := make(map[int64]*models.AccountInfoResponse) + + for i := 0; i < len(toUpdateAccounts); i++ { + account := toUpdateAccounts[i] + oldAccount := accountMap[account.AccountId] + + account.Type = oldAccount.Type + account.ParentAccountId = oldAccount.ParentAccountId + account.DisplayOrder = oldAccount.DisplayOrder + account.Currency = oldAccount.Currency + account.Balance = oldAccount.Balance + + accountResp := account.ToAccountInfoResponse() + accountRespMap[accountResp.Id] = accountResp + } + + for i := 0; i < len(accountAndSubAccounts); i++ { + oldAccount := accountAndSubAccounts[i] + _, exists := accountRespMap[oldAccount.AccountId] + + if !exists { + oldAccountResp := oldAccount.ToAccountInfoResponse() + accountRespMap[oldAccountResp.Id] = oldAccountResp + } + } + + accountResp := accountRespMap[accountModifyReq.Id] + + for i := 0; i < len(accountAndSubAccounts); i++ { + if accountAndSubAccounts[i].ParentAccountId == accountResp.Id { + subAccountResp := accountRespMap[accountAndSubAccounts[i].AccountId] + accountResp.SubAccounts = append(accountResp.SubAccounts, subAccountResp) + } + } + + sort.Sort(accountResp.SubAccounts) + + return accountResp, nil } // AccountHideHandler hides an existed account by request parameters for current user diff --git a/pkg/api/transaction_categories.go b/pkg/api/transaction_categories.go index a5fab85c..8737543b 100644 --- a/pkg/api/transaction_categories.go +++ b/pkg/api/transaction_categories.go @@ -238,7 +238,12 @@ func (a *TransactionCategoriesApi) CategoryModifyHandler(c *core.Context) (inter log.InfofWithRequestId(c, "[transaction_categories.CategoryModifyHandler] user \"uid:%d\" has updated category \"id:%d\" successfully", uid, categoryModifyReq.Id) - return true, nil + newCategory.Type = category.Type + newCategory.ParentCategoryId = category.ParentCategoryId + newCategory.DisplayOrder = category.DisplayOrder + categoryResp := newCategory.ToTransactionCategoryInfoResponse() + + return categoryResp, nil } // CategoryHideHandler hides an existed transaction category by request parameters for current user diff --git a/pkg/api/transactions.go b/pkg/api/transactions.go index 523c0346..5f179ae4 100644 --- a/pkg/api/transactions.go +++ b/pkg/api/transactions.go @@ -295,7 +295,10 @@ func (a *TransactionsApi) TransactionModifyHandler(c *core.Context) (interface{} log.InfofWithRequestId(c, "[transactions.TransactionModifyHandler] user \"uid:%d\" has updated transaction \"id:%d\" successfully", uid, transactionModifyReq.Id) - return true, nil + newTransaction.Type = transaction.Type + newTransactionResp := newTransaction.ToTransactionInfoResponse(tagIds) + + return newTransactionResp, nil } // TransactionDeleteHandler deletes an existed transaction by request parameters for current user