Feat: get all admin settings

pull/31/head
zijiren233 1 year ago
parent cdeb30840c
commit 5599f3d9c0

@ -36,7 +36,16 @@ func AdminSettings(ctx *gin.Context) {
// user := ctx.MustGet("user").(*op.User) // user := ctx.MustGet("user").(*op.User)
group := ctx.Param("group") group := ctx.Param("group")
if 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 return
} }

@ -30,6 +30,8 @@ func Init(e *gin.Engine) {
root.Use(middlewares.AuthRootMiddleware) root.Use(middlewares.AuthRootMiddleware)
{ {
admin.GET("/settings", AdminSettings)
admin.GET("/settings/:group", AdminSettings) admin.GET("/settings/:group", AdminSettings)
admin.POST("/settings", EditAdminSettings) admin.POST("/settings", EditAdminSettings)

@ -20,3 +20,5 @@ func (asr *AdminSettingsReq) Validate() error {
func (asr *AdminSettingsReq) Decode(ctx *gin.Context) error { func (asr *AdminSettingsReq) Decode(ctx *gin.Context) error {
return json.NewDecoder(ctx.Request.Body).Decode(asr) return json.NewDecoder(ctx.Request.Body).Decode(asr)
} }
type AdminSettingsResp map[string]map[string]any

Loading…
Cancel
Save