From b5cf90ce783ee2ba14ee4d04c9ced95ad819dd50 Mon Sep 17 00:00:00 2001 From: Tim Levett Date: Fri, 24 May 2024 14:12:31 -0500 Subject: [PATCH] API: Add in theme support to /render/* endpoint (#88304) add in theme support to render endpoint --- pkg/api/render.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pkg/api/render.go b/pkg/api/render.go index d3e25371641..52b0214ca6c 100644 --- a/pkg/api/render.go +++ b/pkg/api/render.go @@ -45,6 +45,20 @@ func (hs *HTTPServer) RenderHandler(c *contextmodel.ReqContext) { scale = hs.Cfg.RendererDefaultImageScale } + theme := c.QueryStrings("theme") + var themeModel models.Theme + if len(theme) > 0 { + themeStr := theme[0] + _, err := models.ParseTheme(themeStr) + if err != nil { + c.Handle(hs.Cfg, http.StatusBadRequest, "Render parameters error: theme can only be light or dark", err) + return + } + themeModel = models.Theme(themeStr) + } else { + themeModel = models.ThemeDark + } + headers := http.Header{} acceptLanguageHeader := c.Req.Header.Values("Accept-Language") if len(acceptLanguageHeader) > 0 { @@ -81,7 +95,7 @@ func (hs *HTTPServer) RenderHandler(c *contextmodel.ReqContext) { Width: width, Height: height, DeviceScaleFactor: scale, - Theme: models.ThemeDark, + Theme: themeModel, }, nil) if err != nil { if errors.Is(err, rendering.ErrTimeout) {