From 2bcd8a5a088ef07c41bd7de079520504847c9fe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Z=C3=BCrcher?= Date: Wed, 19 Nov 2025 16:09:46 +0100 Subject: [PATCH] bug fix findbykey --- dbHandler.go | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/dbHandler.go b/dbHandler.go index 71956ac..4779d28 100644 --- a/dbHandler.go +++ b/dbHandler.go @@ -132,19 +132,18 @@ func (dH *DBHandler) AddNewColum(model any) error { func (dH *DBHandler) GetById(model any, relation string, id uint) (err error) { dH.logger.Debug("getById", "find id "+fmt.Sprint(id)) - if id == 0 { - if relation != "" { - return dH.db.Preload(relation).Find(model).Error - } - return dH.db.Find(model).Error - } + query := dH.db if relation != "" { - err = dH.db.Preload(relation).First(model, id).Error - } else { - err = dH.db.First(model, id).Error + query = query.Preload(relation) } + if id == 0 { + return query.Find(model).Error + } + + err = query.First(model, id).Error + if errors.Is(err, gorm.ErrRecordNotFound) { return fmt.Errorf("no record found for id: %v", id) } else if err != nil { @@ -172,20 +171,19 @@ func (dH *DBHandler) GetById(model any, relation string, id uint) (err error) { // Returns: // - error: Any database query error. func (dH *DBHandler) GetByKey(model any, relation string, key string, value any, LikeSearch bool) error { + query := dH.db + + if relation != "" { + query = query.Preload(relation) + } if LikeSearch { value = strings.ReplaceAll(fmt.Sprint(value), "*", "%") dH.logger.Debug("getByKey", "find like key "+key+" value "+fmt.Sprint(value)) - if relation != "" { - return dH.db.Preload(relation).Where(key+" LIKE ?", value).Delete(model).Error - } - return dH.db.Where(key+" LIKE ?", value).Find(model).Error + return query.Where(key+" LIKE ?", value).Find(model).Error } dH.logger.Debug("getByKey", "find equal key "+key+" value "+fmt.Sprint(value)) - if relation != "" { - return dH.db.Preload(relation).Where(key+" = ?", value).Delete(model).Error - } - return dH.db.Find(model, key+" = ?", value).Error + return query.Find(model, key+" = ?", value).Error } // updateValuesById @@ -216,10 +214,12 @@ func (dH *DBHandler) UpdateValuesById(model any, relation string, id uint) error if err := dH.GetById(lookUpModel, relation, id); err != nil { return err } + query := dH.db + if relation != "" { - return dH.db.Preload(relation).Model(lookUpModel).Updates(model).Error + query = query.Preload(relation) } - return dH.db.Model(lookUpModel).Updates(model).Error + return query.Model(lookUpModel).Updates(model).Error } // updateValuesByKey @@ -251,10 +251,12 @@ func (dH *DBHandler) UpdateValuesByKey(model any, relation string, key string, v if err := dH.GetByKey(lookUpModel, "", key, value, false); err != nil { return err } + query := dH.db + if relation != "" { - return dH.db.Preload(relation).Model(lookUpModel).Updates(model).Error + query = query.Preload(relation) } - return dH.db.Model(lookUpModel).Updates(model).Error + return query.Model(lookUpModel).Updates(model).Error } func (dH *DBHandler) DeleteById(model any, ids ...uint) error {