module Hack2.Contrib.Middleware.UTF8Body (utf8_body) where

import Prelude ()
import Air.Env
import Air.Extra (u2b)
import Air.Heavy (unescape_xml)
import Hack2
import qualified Data.ByteString.Char8 as B
import Hack2.Contrib.Utils (as_string)

utf8_body :: Middleware
utf8_body app = \env -> do
  r <- app env
  let raw_body = r.body
  return r {body = raw_body.as_string (unescape_xml > u2b)}