fix: handle nil setting in user retrieval from database

This commit is contained in:
CaIon
2026-02-24 23:46:17 +08:00
parent a36d0f90bc
commit b85192590b

View File

@@ -1,6 +1,7 @@
package model package model
import ( import (
"database/sql"
"encoding/json" "encoding/json"
"errors" "errors"
"fmt" "fmt"
@@ -853,10 +854,17 @@ func GetUserSetting(id int, fromDB bool) (settingMap dto.UserSetting, err error)
// Don't return error - fall through to DB // Don't return error - fall through to DB
} }
fromDB = true fromDB = true
err = DB.Model(&User{}).Where("id = ?", id).Select("setting").Find(&setting).Error // can be nil setting
var safeSetting sql.NullString
err = DB.Model(&User{}).Where("id = ?", id).Select("setting").Find(&safeSetting).Error
if err != nil { if err != nil {
return settingMap, err return settingMap, err
} }
if safeSetting.Valid {
setting = safeSetting.String
} else {
setting = ""
}
userBase := &UserBase{ userBase := &UserBase{
Setting: setting, Setting: setting,
} }