@@ -107,6 +107,7 @@ carol :: Person
107
107
carol = Person " Carol" 17
108
108
109
109
type TestHeaders = '[Header " X-Example1" Int , Header " X-Example2" String ]
110
+ type TestSetCookieHeaders = '[Header " Set-Cookie" String , Header " Set-Cookie" String ]
110
111
111
112
data RecordRoutes mode = RecordRoutes
112
113
{ version :: mode :- " version" :> Get '[JSON ] Int
@@ -151,6 +152,7 @@ type Api =
151
152
Get '[JSON ] (String , Maybe Int , Bool , [(String , [Rational ])])
152
153
:<|> " headers" :> Get '[JSON ] (Headers TestHeaders Bool )
153
154
:<|> " uverb-headers" :> UVerb 'GET '[JSON ] '[ WithStatus 200 (Headers TestHeaders Bool ), WithStatus 204 String ]
155
+ :<|> " set-cookie-headers" :> Get '[JSON ] (Headers TestSetCookieHeaders Bool )
154
156
:<|> " deleteContentType" :> DeleteNoContent
155
157
:<|> " redirectWithCookie" :> Raw
156
158
:<|> " empty" :> EmptyAPI
@@ -184,6 +186,7 @@ getMultiple :: String -> Maybe Int -> Bool -> [(String, [Rational])]
184
186
-> ClientM (String , Maybe Int , Bool , [(String , [Rational ])])
185
187
getRespHeaders :: ClientM (Headers TestHeaders Bool )
186
188
getUVerbRespHeaders :: ClientM (Union '[ WithStatus 200 (Headers TestHeaders Bool ), WithStatus 204 String ])
189
+ getSetCookieHeaders :: ClientM (Headers TestSetCookieHeaders Bool )
187
190
getDeleteContentType :: ClientM NoContent
188
191
getRedirectWithCookie :: HTTP. Method -> ClientM Response
189
192
uverbGetSuccessOrRedirect :: Bool
@@ -210,6 +213,7 @@ getRoot
210
213
:<|> getMultiple
211
214
:<|> getRespHeaders
212
215
:<|> getUVerbRespHeaders
216
+ :<|> getSetCookieHeaders
213
217
:<|> getDeleteContentType
214
218
:<|> getRedirectWithCookie
215
219
:<|> EmptyClient
@@ -247,6 +251,7 @@ server = serve api (
247
251
:<|> (\ a b c d -> return (a, b, c, d))
248
252
:<|> (return $ addHeader 1729 $ addHeader " eg2" True )
249
253
:<|> (pure . Z . I . WithStatus $ addHeader 1729 $ addHeader " eg2" True )
254
+ :<|> (return $ addHeader " cookie1" $ addHeader " cookie2" True )
250
255
:<|> return NoContent
251
256
:<|> (Tagged $ \ _request respond -> respond $ Wai. responseLBS HTTP. found302 [(" Location" , " testlocation" ), (" Set-Cookie" , " testcookie=test" )] " " )
252
257
:<|> emptyServer
0 commit comments