package serversettings import ( "strconv" "git.umbach.dev/app-idea/rest-api/modules/database" log "github.com/sirupsen/logrus" ) type ServerSettings struct { ExpiredTime int64 UsernameMinLen int64 UsernameMaxLen int64 EmailMinLen int64 EmailMaxLen int64 PasswordMinLen int64 PasswordMaxLen int64 } var Settings ServerSettings func LoadServerSettings() { log.Debug("load server settings from db") rows, err := database.DB.Raw("SELECT name, value FROM server_settings").Rows() if err != nil { log.Fatal("failed to load server settings:", err) } defer rows.Close() var ( name string value string ) for rows.Next() { rows.Scan(&name, &value) log.Debugln("server setting:", name, value) switch name { case "expired_time": Settings.ExpiredTime = stringToInt(value) case "username_min_len": Settings.UsernameMinLen = stringToInt(value) case "username_max_len": Settings.UsernameMaxLen = stringToInt(value) case "email_min_len": Settings.EmailMinLen = stringToInt(value) case "email_max_len": Settings.EmailMaxLen = stringToInt(value) case "password_min_len": Settings.PasswordMinLen = stringToInt(value) case "password_max_len": Settings.PasswordMaxLen = stringToInt(value) } } } func stringToInt(s string) int64 { n, err := strconv.ParseInt(s, 0, 64) if err != nil { log.Fatalln("failed to parse server setting: ", err) } return n }