@@ -157,16 +157,23 @@ toWaiResponse wreq resp = case resp of
157157 handleHeaders' hds cookies = let ckHs = map (\ (ck, cv) -> (hSetCookie , renderSC ck cv)) cookies
158158 in hds <> ckHs
159159 renderSC k v = toStrict . toLazyByteString . renderSetCookie $ def
160- { setCookieName = k
161- , setCookieValue = cookieValue v
162- , setCookiePath = cookiePath v
163- , setCookieExpires = cookieExpires v
164- , setCookieMaxAge = cookieMaxAge v
165- , setCookieDomain = cookieDomain v
160+ { setCookieName = k
161+ , setCookieValue = cookieValue v
162+ , setCookiePath = cookiePath v
163+ , setCookieExpires = cookieExpires v
164+ , setCookieMaxAge = cookieMaxAge v
165+ , setCookieDomain = cookieDomain v
166166 , setCookieHttpOnly = fromMaybe False (cookieHttpOnly v)
167167 , setCookieSecure = fromMaybe False (cookieSecure v)
168- , setCookieSameSite = cookieSameSite v
168+ , setCookieSameSite = cookieSameSite' v
169169 }
170+
171+ cookieSameSite' :: CookieInfo ByteString -> Maybe SameSiteOption
172+ cookieSameSite' v = case (cookieSameSite v) of
173+ Just SameSiteStrict -> Just Strict
174+ Just SameSiteLax -> Just Lax
175+ Just SameSiteNone -> Just None
176+ _ -> Nothing
170177
171178
172179-- | Describes the implementation of a single API end point corresponding to @ApiContract (ApiInterface p) m r@
0 commit comments