From f660badc3d947ecf8300b7316b57e4274d20af4c Mon Sep 17 00:00:00 2001 From: clos Date: Sun, 29 Jan 2023 22:07:46 +0000 Subject: [PATCH] feat(background): add Last-Modified header (#1376) Reviewed-on: https://kolaente.dev/vikunja/api/pulls/1376 Co-authored-by: clos Co-committed-by: clos --- pkg/modules/background/handler/background.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkg/modules/background/handler/background.go b/pkg/modules/background/handler/background.go index dc57b23b5..6dfd74437 100644 --- a/pkg/modules/background/handler/background.go +++ b/pkg/modules/background/handler/background.go @@ -295,6 +295,11 @@ func GetListBackground(c echo.Context) error { _ = s.Rollback() return handler.HandleHTTPError(err, c) } + stat, err := bgFile.File.Stat() + if err != nil { + _ = s.Rollback() + return handler.HandleHTTPError(err, c) + } // Unsplash requires pingbacks as per their api usage guidelines. // To do this in a privacy-preserving manner, we do the ping from inside of Vikunja to not expose any user details. @@ -306,6 +311,11 @@ func GetListBackground(c echo.Context) error { return handler.HandleHTTPError(err, c) } + // Set Last-Modified header if we have the file stat, so clients can decide whether to use cached files + if stat != nil { + c.Response().Header().Set(echo.HeaderLastModified, stat.ModTime().UTC().Format(http.TimeFormat)) + } + // Serve the file return c.Stream(http.StatusOK, "image/jpg", bgFile.File) }