Skip to content

Commit b851925

Browse files
committed
fix: handle nil setting in user retrieval from database
1 parent a36d0f9 commit b851925

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

model/user.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package model
22

33
import (
4+
"database/sql"
45
"encoding/json"
56
"errors"
67
"fmt"
@@ -853,10 +854,17 @@ func GetUserSetting(id int, fromDB bool) (settingMap dto.UserSetting, err error)
853854
// Don't return error - fall through to DB
854855
}
855856
fromDB = true
856-
err = DB.Model(&User{}).Where("id = ?", id).Select("setting").Find(&setting).Error
857+
// can be nil setting
858+
var safeSetting sql.NullString
859+
err = DB.Model(&User{}).Where("id = ?", id).Select("setting").Find(&safeSetting).Error
857860
if err != nil {
858861
return settingMap, err
859862
}
863+
if safeSetting.Valid {
864+
setting = safeSetting.String
865+
} else {
866+
setting = ""
867+
}
860868
userBase := &UserBase{
861869
Setting: setting,
862870
}

0 commit comments

Comments
 (0)