diff --git a/pkg/services/accounts.go b/pkg/services/accounts.go index 30c1e034..6ba84dd8 100644 --- a/pkg/services/accounts.go +++ b/pkg/services/accounts.go @@ -151,10 +151,12 @@ func (s *AccountService) ModifyAccounts(uid int64, accounts []*models.Account) e return s.UserDataDB(uid).DoTransaction(func(sess *xorm.Session) error { for i := 0; i < len(accounts); i++ { account := accounts[i] - _, err := sess.Cols("name", "category", "icon", "color", "comment", "hidden", "updated_unix_time").Where("account_id=? AND uid=? AND deleted=?", account.AccountId, uid, false).Update(account) + updatedRows, err := sess.Cols("name", "category", "icon", "color", "comment", "hidden", "updated_unix_time").Where("account_id=? AND uid=? AND deleted=?", account.AccountId, uid, false).Update(account) if err != nil { return err + } else if updatedRows < 1 { + return errs.ErrAccountNotFound } } @@ -175,13 +177,15 @@ func (s *AccountService) HideAccount(uid int64, ids []int64, hidden bool) error } return s.UserDataDB(uid).DoTransaction(func(sess *xorm.Session) error { - updateRows, err := sess.Cols("hidden", "updated_unix_time").In("account_id", ids).Where("uid=? AND deleted=?", uid, false).Update(updateModel) + updatedRows, err := sess.Cols("hidden", "updated_unix_time").In("account_id", ids).Where("uid=? AND deleted=?", uid, false).Update(updateModel) - if updateRows < 1 { + if err != nil { + return err + } else if updatedRows < 1 { return errs.ErrAccountNotFound } - return err + return nil }) } @@ -197,10 +201,12 @@ func (s *AccountService) ModifyAccountDisplayOrders(uid int64, accounts []*model return s.UserDataDB(uid).DoTransaction(func(sess *xorm.Session) error { for i := 0; i < len(accounts); i++ { account := accounts[i] - _, err := sess.Cols("display_order", "updated_unix_time").Where("account_id=? AND uid=? AND deleted=?", account.AccountId, uid, false).Update(account) + updatedRows, err := sess.Cols("display_order", "updated_unix_time").Where("account_id=? AND uid=? AND deleted=?", account.AccountId, uid, false).Update(account) if err != nil { return err + } else if updatedRows < 1 { + return errs.ErrAccountNotFound } } @@ -223,7 +229,9 @@ func (s *AccountService) DeleteAccounts(uid int64, ids []int64) error { return s.UserDataDB(uid).DoTransaction(func(sess *xorm.Session) error { deletedRows, err := sess.Cols("deleted", "deleted_unix_time").In("account_id", ids).Where("uid=? AND deleted=?", uid, false).Update(updateModel) - if deletedRows < 1 { + if err != nil { + return err + } else if deletedRows < 1 { return errs.ErrAccountNotFound } diff --git a/pkg/services/tokens.go b/pkg/services/tokens.go index f41ec349..f7f3e93d 100644 --- a/pkg/services/tokens.go +++ b/pkg/services/tokens.go @@ -108,11 +108,13 @@ func (s *TokenService) DeleteToken(tokenRecord *models.TokenRecord) error { return s.TokenDB(tokenRecord.Uid).DoTransaction(func(sess *xorm.Session) error { deletedRows, err := sess.Where("uid=? AND user_token_id=? AND created_unix_time=?", tokenRecord.Uid, tokenRecord.UserTokenId, tokenRecord.CreatedUnixTime).Delete(&models.TokenRecord{}) - if deletedRows < 1 { + if err != nil { + return err + } else if deletedRows < 1 { return errs.ErrTokenRecordNotFound } - return err + return nil }) } @@ -124,10 +126,12 @@ func (s *TokenService) DeleteTokens(uid int64, tokenRecords []*models.TokenRecor return s.TokenDB(uid).DoTransaction(func(sess *xorm.Session) error { for i := 0; i < len(tokenRecords); i++ { tokenRecord := tokenRecords[i] - _, err := sess.Where("uid=? AND user_token_id=? AND created_unix_time=?", uid, tokenRecord.UserTokenId, tokenRecord.CreatedUnixTime).Delete(&models.TokenRecord{}) + deletedRows, err := sess.Where("uid=? AND user_token_id=? AND created_unix_time=?", uid, tokenRecord.UserTokenId, tokenRecord.CreatedUnixTime).Delete(&models.TokenRecord{}) if err != nil { return err + } else if deletedRows < 1 { + return errs.ErrTokenRecordNotFound } } diff --git a/pkg/services/transaction_categories.go b/pkg/services/transaction_categories.go index ba86ea14..8dce86b0 100644 --- a/pkg/services/transaction_categories.go +++ b/pkg/services/transaction_categories.go @@ -212,10 +212,8 @@ func (s *TransactionCategoryService) ModifyCategory(category *models.Transaction updatedRows, err := sess.Cols("name", "icon", "color", "comment", "hidden", "updated_unix_time").Where("category_id=? AND uid=? AND deleted=?", category.CategoryId, category.Uid, false).Update(category) if err != nil { - return errs.ErrDatabaseOperationFailed - } - - if updatedRows < 1 { + return err + } else if updatedRows < 1 { return errs.ErrTransactionCategoryNotFound } @@ -236,13 +234,15 @@ func (s *TransactionCategoryService) HideCategory(uid int64, ids []int64, hidden } return s.UserDataDB(uid).DoTransaction(func(sess *xorm.Session) error { - deletedRows, err := sess.Cols("hidden", "updated_unix_time").In("category_id", ids).Where("uid=? AND deleted=?", uid, false).Update(updateModel) + updatedRows, err := sess.Cols("hidden", "updated_unix_time").In("category_id", ids).Where("uid=? AND deleted=?", uid, false).Update(updateModel) - if deletedRows < 1 { + if err != nil { + return err + } else if updatedRows < 1 { return errs.ErrTransactionCategoryNotFound } - return err + return nil }) } @@ -258,10 +258,12 @@ func (s *TransactionCategoryService) ModifyCategoryDisplayOrders(uid int64, cate return s.UserDataDB(uid).DoTransaction(func(sess *xorm.Session) error { for i := 0; i < len(categories); i++ { category := categories[i] - _, err := sess.Cols("display_order", "updated_unix_time").Where("category_id=? AND uid=? AND deleted=?", category.CategoryId, uid, false).Update(category) + updatedRows, err := sess.Cols("display_order", "updated_unix_time").Where("category_id=? AND uid=? AND deleted=?", category.CategoryId, uid, false).Update(category) if err != nil { return err + } else if updatedRows < 1 { + return errs.ErrTransactionCategoryNotFound } } @@ -284,7 +286,9 @@ func (s *TransactionCategoryService) DeleteCategories(uid int64, ids []int64) er return s.UserDataDB(uid).DoTransaction(func(sess *xorm.Session) error { deletedRows, err := sess.Cols("deleted", "deleted_unix_time").In("category_id", ids).Where("uid=? AND deleted=?", uid, false).Update(updateModel) - if deletedRows < 1 { + if err != nil { + return err + } else if deletedRows < 1 { return errs.ErrTransactionCategoryNotFound } diff --git a/pkg/services/twofactor_authorizations.go b/pkg/services/twofactor_authorizations.go index e1b693fb..f73a5dca 100644 --- a/pkg/services/twofactor_authorizations.go +++ b/pkg/services/twofactor_authorizations.go @@ -108,11 +108,13 @@ func (s *TwoFactorAuthorizationService) DeleteTwoFactorSetting(uid int64) error return s.UserDB().DoTransaction(func(sess *xorm.Session) error { deletedRows, err := sess.Where("uid=?", uid).Delete(&models.TwoFactor{}) - if deletedRows < 1 { + if err != nil { + return err + } else if deletedRows < 1 { return errs.ErrTwoFactorIsNotEnabled } - return err + return nil }) } diff --git a/pkg/services/users.go b/pkg/services/users.go index 5dfd8b32..9614b13b 100644 --- a/pkg/services/users.go +++ b/pkg/services/users.go @@ -193,14 +193,12 @@ func (s *UserService) UpdateUser(user *models.User) (keyProfileUpdated bool, err updatedRows, err := sess.ID(user.Uid).Where("deleted=?", false).Cols(updateCols...).Update(user) if err != nil { - return errs.ErrDatabaseOperationFailed - } - - if updatedRows < 1 { + return err + } else if updatedRows < 1 { return errs.ErrUserNotFound } - return err + return nil }) if err != nil {