Files
openai-api-route/config.go
2023-07-18 18:51:02 +08:00

50 lines
854 B
Go

package main
import (
"errors"
"log"
"gorm.io/gorm"
)
// K-V struct to store program's config
type ConfigKV struct {
gorm.Model
Key string `gorm:"unique"`
Value string
}
// init db
func initconfig(db *gorm.DB) error {
var err error
err = db.AutoMigrate(&ConfigKV{})
if err != nil {
return err
}
// config list and their default values
configs := make(map[string]string)
configs["authorization"] = "woshimima"
configs["policy"] = "main"
for key, value := range configs {
kv := ConfigKV{}
err = db.Take(&kv, "key = ?", key).Error
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
log.Println("Missing config", key, "creating with value", value)
kv.Key = key
kv.Value = value
if err = db.Create(&kv).Error; err != nil {
return err
}
} else {
return err
}
}
}
return nil
}