diff --git a/server/handlers/admin.go b/server/handlers/admin.go index 3c8b733..e621fef 100644 --- a/server/handlers/admin.go +++ b/server/handlers/admin.go @@ -36,7 +36,16 @@ func AdminSettings(ctx *gin.Context) { // user := ctx.MustGet("user").(*op.User) group := ctx.Param("group") if group == "" { - ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("group is required")) + resp := make(model.AdminSettingsResp, len(settings.GroupSettings)) + for sg, v := range settings.GroupSettings { + if resp[string(sg)] == nil { + resp[string(sg)] = make(gin.H, len(v)) + } + for _, s2 := range v { + resp[string(sg)][s2.Name()] = s2.Interface() + } + } + ctx.JSON(http.StatusOK, model.NewApiDataResp(resp)) return } diff --git a/server/handlers/init.go b/server/handlers/init.go index 9e82f45..8a26591 100644 --- a/server/handlers/init.go +++ b/server/handlers/init.go @@ -30,6 +30,8 @@ func Init(e *gin.Engine) { root.Use(middlewares.AuthRootMiddleware) { + admin.GET("/settings", AdminSettings) + admin.GET("/settings/:group", AdminSettings) admin.POST("/settings", EditAdminSettings) diff --git a/server/model/admin.go b/server/model/admin.go index 385b651..e8c4ad1 100644 --- a/server/model/admin.go +++ b/server/model/admin.go @@ -20,3 +20,5 @@ func (asr *AdminSettingsReq) Validate() error { func (asr *AdminSettingsReq) Decode(ctx *gin.Context) error { return json.NewDecoder(ctx.Request.Body).Decode(asr) } + +type AdminSettingsResp map[string]map[string]any