From 6dc20979d287652a849e32696fe3a805df1001ae Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 30 Apr 2025 12:05:55 -0600 Subject: refactor: extract cookie options --- pkg/web/cookie/new.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'pkg/web') diff --git a/pkg/web/cookie/new.go b/pkg/web/cookie/new.go index d4d0700..a3cb200 100644 --- a/pkg/web/cookie/new.go +++ b/pkg/web/cookie/new.go @@ -5,10 +5,13 @@ import ( "time" "github.com/xlgmokha/x/pkg/env" + "gitlab.com/gitlab-org/software-supply-chain-security/authorization/sparkled/pkg/pls" ) -func New(name, value string, expires time.Time) *http.Cookie { - return &http.Cookie{ +type CookieOption pls.Option[*http.Cookie] + +func New(name, value string, expires time.Time, options ...CookieOption) *http.Cookie { + cookie := &http.Cookie{ Name: name, Value: value, // TODO:: digitally sign the value Expires: expires, @@ -19,4 +22,10 @@ func New(name, value string, expires time.Time) *http.Cookie { SameSite: http.SameSiteStrictMode, Domain: env.Fetch("HOST", "localhost"), } + + for _, option := range options { + cookie = option(cookie) + } + + return cookie } -- cgit v1.2.3