]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - examples/Multipart.hs
Examples now compile.
[Lucu.git] / examples / Multipart.hs
index 69c4125accd5a97c54f909dea9141fd5866062c8..9c42e7269a4984452d8914aea1644ba02891f1eb 100644 (file)
@@ -1,8 +1,15 @@
-import qualified Data.ByteString.Lazy.Char8 as L8
+{-# LANGUAGE
+    OverloadedStrings
+  , UnicodeSyntax
+  #-}
+import qualified Data.ByteString.Lazy.Char8 as Lazy
+import Control.Applicative
+import Control.Monad.Unicode
 import Data.Maybe
+import Data.Monoid.Unicode
 import Network.HTTP.Lucu
 
-main :: IO ()
+main  IO ()
 main = let config    = defaultConfig { cnfServerPort = "9999" }
            resources = mkResTree [ ([], resMain) ]
        in
@@ -10,30 +17,25 @@ main = let config    = defaultConfig { cnfServerPort = "9999" }
             runHttpd config resources []
 
 
-resMain :: ResourceDef
+resMain  ResourceDef
 resMain 
-    = ResourceDef {
-        resUsesNativeThread = False
-      , resIsGreedy         = False
-      , resGet
-          = Just $ do setContentType $ read "text/html"
-                      output ("<title>Multipart Form Test</title>" ++
-                              "<form action=\"/\" method=\"post\" enctype=\"multipart/form-data\">" ++
-                              "  Upload some file:" ++
-                              "  <input type=\"text\" name=\"text\">" ++
-                              "  <input type=\"file\" name=\"file\">" ++
-                              "  <input type=\"submit\" value=\"Submit\">" ++
-                              "</form>")
-      , resHead   = Nothing
+    = emptyResource {
+        resGet
+          = Just $ do setContentType $ mkMIMEType "text" "html"
+                      output ("<title>Multipart Form Test</title>\n" ⊕
+                              "<form action=\"/\" method=\"post\" enctype=\"multipart/form-data\">\n" ⊕
+                              "  Upload some file:\n" ⊕
+                              "  <input type=\"text\" name=\"text\">\n" ⊕
+                              "  <input type=\"file\" name=\"file\">\n" ⊕
+                              "  <input type=\"submit\" value=\"Submit\">\n" ⊕
+                              "</form>\n")
       , resPost
-          = Just $ do form <- inputForm defaultLimit
-                      let text     = fromMaybe L8.empty $ fmap fdContent $ lookup "text" form
-                          file     = fromMaybe L8.empty $ fmap fdContent $ lookup "file" form
-                          fileName = fdFileName =<< lookup "file" form
-                      setContentType $ read "text/plain"
-                      outputChunk ("You entered \"" ++ L8.unpack text ++ "\".\n")
-                      outputChunk ("You uploaded a " ++ show (L8.length file) ++ " bytes long file.\n")
-                      output ("The file name is " ++ show fileName ++ ".\n")
-      , resPut    = Nothing
-      , resDelete = Nothing
-      }
\ No newline at end of file
+          = Just $ do form ← inputForm defaultLimit
+                      let text     = fromMaybe (∅) $ fdContent <$> lookup "text" form
+                          file     = fromMaybe (∅) $ fdContent <$> lookup "file" form
+                          fileName = fdFileName =≪ lookup "file" form
+                      setContentType $ mkMIMEType "text" "plain"
+                      outputChunk ("You entered \"" ⊕ text ⊕ "\".\n")
+                      outputChunk ("You uploaded a " ⊕ Lazy.pack (show $ Lazy.length file) ⊕ " bytes long file.\n")
+                      output ("The file name is " ⊕ Lazy.pack (show fileName) ⊕ ".\n")
+      }