diff --git a/services/ical/service/routes.go b/services/ical/service/routes.go index 99117fe..d94f2b1 100644 --- a/services/ical/service/routes.go +++ b/services/ical/service/routes.go @@ -34,12 +34,17 @@ func AddFeedRoutes(app model.AppType) { app.Fiber.Get("/api/feed", func(c fiber.Ctx) error { token := c.Query("token") + ifNoneMatch := c.Get("If-None-Match") results, eTag, err := ical.Feed(app, token) if errors.Is(err, ical.FeedDeletedError) { return c.SendStatus(fiber.StatusGone) } + if ifNoneMatch == eTag { + return c.SendStatus(fiber.StatusNotModified) + } + if err != nil { slog.Error("Failed to get feed", "error", err, "token", token) return c.SendStatus(fiber.StatusNotFound)