Files
0451meishi/backend/internal/handlers/settings.go
2026-01-15 11:37:22 +08:00

46 lines
1012 B
Go

package handlers
import (
"net/http"
"strings"
"0451meishiditu/backend/internal/resp"
"0451meishiditu/backend/internal/settings"
"github.com/gin-gonic/gin"
)
type corsUpdateReq struct {
Origins []string `json:"origins" binding:"required"`
}
func (h *Handlers) SettingsGetCORS(c *gin.Context) {
resp.OK(c, gin.H{"origins": h.st.CORSAllowOrigins()})
}
func (h *Handlers) SettingsUpdateCORS(c *gin.Context) {
var req corsUpdateReq
if err := c.ShouldBindJSON(&req); err != nil {
resp.Fail(c, http.StatusBadRequest, "invalid payload")
return
}
var cleaned []string
for _, o := range req.Origins {
v := strings.TrimSpace(o)
if v != "" {
cleaned = append(cleaned, v)
}
}
if len(cleaned) == 0 {
resp.Fail(c, http.StatusBadRequest, "origins required")
return
}
if err := settings.UpsertCORSAllowOrigins(h.db, cleaned); err != nil {
resp.Fail(c, http.StatusInternalServerError, "update failed")
return
}
h.st.SetCORSAllowOrigins(cleaned)
resp.OK(c, gin.H{"updated": true})
}