add global config struct

This commit is contained in:
wjqserver 2025-06-25 20:02:53 +08:00
parent cc429c44f9
commit cd1e1a42f3
9 changed files with 251 additions and 214 deletions

View file

@ -119,107 +119,18 @@ func DeleteConfig(cdb *db.ConfigDB, cfg *config.Config) touka.HandlerFunc {
}
}
/*
func PutConfig(cdb *db.ConfigDB, cfg *config.Config) touka.HandlerFunc {
func GetHeadersPreset() touka.HandlerFunc {
return func(c *touka.Context) {
filename := c.Param("filename")
var config gen.CaddyUniConfig
err := c.ShouldBindJSON(&config)
if err != nil {
c.JSON(500, touka.H{"error": err.Error()})
presetName := c.Param("name")
if presetName == "" {
c.JSON(400, touka.H{"error": "presetName is required"})
return
}
var (
paramsGOB []byte
paramsOrigin []byte
)
switch config.TmplType {
case "file_server":
caddyfscfg := gen.CaddyFileServerConfig{
Domain: config.Domain,
FileDirPath: config.FileServer.FileDirPath,
EnableBrowser: config.FileServer.EnableBrowser,
Headers: gen.HeadersMapToHeadersUp(config.Headers),
EnableLog: config.Log.EnableLog,
LogDomain: config.Log.LogDomain,
EnableErrorPage: config.ErrorPage.EnableErrorPage,
EnableEncode: config.Encode.EnableEncode,
}
paramsGOB, err = gen.EncodeGobConfig(caddyfscfg)
if err != nil {
c.Warnf("encode gob config error: %v", err)
c.JSON(500, touka.H{"error": err.Error()})
return
}
// 把json变为gob []byte
paramsOrigin, err = gen.EncodeGobConfig(config)
if err != nil {
c.Warnf("encode origin config error: %v", err)
c.JSON(500, touka.H{"error": err.Error()})
return
}
paramsEntry := db.ParamsEntry{
Filename: filename,
TemplateType: config.TmplType,
ParamsGOB: paramsGOB,
ParamsOrigin: paramsOrigin,
}
err = WriteConfig(cdb, paramsEntry, cfg, filename)
if err != nil {
c.Warnf("write config error: %v", err)
c.JSON(500, touka.H{"error": err.Error()})
return
}
c.JSON(200, touka.H{"message": "config saved and rendered"})
return
case "reverse_proxy":
caddyrpCfg := gen.CaddyReverseProxyConfig{
Domain: config.Domain,
ReverseProxy: config.UpStream.UpStream,
Headers: gen.HeadersMapToHeadersUp(config.Headers),
HeadersUp: gen.HeadersMapToHeadersUp(config.UpStream.UpStreamHeaders),
EnableLog: config.Log.EnableLog,
LogDomain: config.Log.LogDomain,
EnableErrorPage: config.ErrorPage.EnableErrorPage,
EnableEncode: config.Encode.EnableEncode,
}
paramsGOB, err = gen.EncodeGobConfig(caddyrpCfg)
if err != nil {
c.Warnf("encode gob config error: %v", err)
c.JSON(500, touka.H{"error": err.Error()})
return
}
// 把json变为gob []byte
paramsOrigin, err = gen.EncodeGobConfig(config)
if err != nil {
c.Warnf("encode origin config error: %v", err)
c.JSON(500, touka.H{"error": err.Error()})
return
}
paramsEntry := db.ParamsEntry{
Filename: filename,
TemplateType: config.TmplType,
ParamsGOB: paramsGOB,
ParamsOrigin: paramsOrigin,
}
err = WriteConfig(cdb, paramsEntry, cfg, filename)
if err != nil {
c.Warnf("write config error: %v", err)
c.JSON(500, touka.H{"error": err.Error()})
return
}
c.JSON(200, touka.H{"message": "config saved and rendered"})
return
default:
c.JSON(500, touka.H{"error": "unknown template type"})
preset, found := GetHeaderSetByID(presetName)
if !found {
c.JSON(404, touka.H{"error": "preset not found"})
return
}
c.JSON(200, preset)
}
}
*/