blob: 9bc2179861216c61f618db9fe76fa26d955f3e7b (
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
25
26
27
28
29
30
|
module Web.Response where
import qualified Data.Text as T
import Data.Text (Text)
import Web.Utils
data Response
= HtmlResponse Int Text -- Код возврата, содержимое HTML
| TextResponse Int Text Text -- Код возврата, Content-Type, содержимое HTML
deriving Show
notFoundResponse = HtmlResponse 404 (T.pack "<strong>404 Not Found</strong>")
getStatusCode (HtmlResponse code _) = code
getStatusCode (TextResponse code _ _) = code
getContentType (HtmlResponse _ _) = (T.pack "text/html")
getContentType (TextResponse _ contentType _) = contentType
getContent (HtmlResponse _ content) = content
getContent (TextResponse _ _ content) = content
formResponse :: Response -> Text
formResponse (HtmlResponse code html) =
T.unlines
$ map T.pack [ "HTTP/1.1 " ++ getStatus code
, "Content-Type: text/html; charset=utf-8"
, "Connection: keep-alive"
, "" ] ++ [html]
|