aboutsummaryrefslogtreecommitdiff
path: root/echo/middleware/vary.go
blob: 8f87d299ece5650b67c228181ece6a34d8b105c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package middleware

import (
	"github.com/labstack/echo/v4"
)

type VaryConfig struct {
	Vary []string
}

func VaryCookie() echo.MiddlewareFunc {
	return VaryWithConfig(VaryConfig{Vary: []string{"Cookie"}})
}

func VaryWithConfig(cfg VaryConfig) echo.MiddlewareFunc {
	return func(next echo.HandlerFunc) echo.HandlerFunc {
		return func(c echo.Context) error {
			for _, v := range cfg.Vary {
				c.Response().Header().Add(echo.HeaderVary, v)
			}
			return next(c)
		}
	}
}