import Control.Monad
import Control.Monad.Unicode
import Data.Ascii (Ascii, CIAscii, AsciiBuilder)
-import qualified Data.Ascii as A
+import Data.Convertible.Base
import Data.Maybe
import Data.Monoid.Unicode
import GHC.Conc (unsafeIOToSTM)
, isError
])
$ abort'
- $ A.toAsciiBuilder "Inappropriate status code for a response: "
- ⊕ printStatusCode resStatus
+ $ cs ("Inappropriate status code for a response: " ∷ Ascii)
+ ⊕ cs resStatus
- when ( toStatusCode resStatus ≡ Just MethodNotAllowed ∧
- hasHeader "Allow" res )
+ when ( resStatus ≈ MethodNotAllowed ∧
+ hasHeader "Allow" res )
$ abort'
- $ A.toAsciiBuilder "The status was "
- ⊕ printStatusCode resStatus
- ⊕ A.toAsciiBuilder " but no \"Allow\" header."
+ $ cs ("The status was " ∷ Ascii)
+ ⊕ cs resStatus
+ ⊕ cs (" but no \"Allow\" header." ∷ Ascii)
- when ( toStatusCode resStatus ≢ Just NotModified ∧
- isRedirection resStatus ∧
+ when ( resStatus ≉ NotModified ∧
+ isRedirection resStatus ∧
hasHeader "Location" res )
$ abort'
- $ A.toAsciiBuilder "The status code was "
- ⊕ printStatusCode resStatus
- ⊕ A.toAsciiBuilder " but no Location header."
+ $ cs ("The status code was " ∷ Ascii)
+ ⊕ cs resStatus
+ ⊕ cs (" but no Location header." ∷ Ascii)
abort' ∷ AsciiBuilder → STM ()
abort' = throwSTM
∘ mkAbortion' InternalServerError
- ∘ A.toText
- ∘ A.fromAsciiBuilder
+ ∘ cs
postprocessWithRequest ∷ NormalInteraction → STM ()
postprocessWithRequest ni@(NI {..})
$ do writeHeader ni "Content-Type" $ Just defaultPageContentType
writeHeader ni "Content-Encoding" Nothing
res ← readTVar niResponse
- let body = getDefaultPage niConfig (Just niRequest) res
+ let body = defaultPageForResponse niConfig (Just niRequest) res
putTMVar niBodyToSend body
completeUnconditionalHeaders ∷ NormalInteraction → STM ()