package k8s import ( "context" "encoding/json" "gitea.loveuer.com/loveuer/cluster/internal/model" "gitea.loveuer.com/loveuer/cluster/pkg/resp" "gitea.loveuer.com/loveuer/cluster/pkg/store" "github.com/gofiber/fiber/v3" "gorm.io/gorm" ) func ClusterConfigGet(ctx context.Context, db *gorm.DB, store store.Store) fiber.Handler { return func(c fiber.Ctx) error { var config model.ClusterConfig if err := db.Where("key = ?", "kubeconfig").First(&config).Error; err != nil { if err == gorm.ErrRecordNotFound { return resp.R200(c, map[string]any{ "kubeconfig": "", }) } return resp.R500(c, "", nil, err) } return resp.R200(c, map[string]any{ "kubeconfig": config.Value, }) } } func ClusterConfigSet(ctx context.Context, db *gorm.DB, store store.Store) fiber.Handler { return func(c fiber.Ctx) error { var req struct { Kubeconfig string `json:"kubeconfig"` } if err := json.Unmarshal(c.Body(), &req); err != nil { return resp.R400(c, "", nil, err) } config := model.ClusterConfig{ Key: "kubeconfig", Value: req.Kubeconfig, } if err := db.Where("key = ?", "kubeconfig").Assign(config).FirstOrCreate(&config).Error; err != nil { return resp.R500(c, "", nil, err) } return resp.R200(c, nil) } }