]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/Request.hs
Reimplement MultipartForm
[Lucu.git] / Network / HTTP / Lucu / Request.hs
index 853907a479c851c48896705e2b42a2a720c78f83..58286dbe6130733fcdc4b19057a061410df43a29 100644 (file)
@@ -10,7 +10,7 @@ module Network.HTTP.Lucu.Request
     ( Method(..)
     , Request(..)
     , reqMustHaveBody
-    , requestP
+    , request
     )
     where
 import Control.Applicative
@@ -62,42 +62,42 @@ reqMustHaveBody (reqMethod → m)
     | otherwise = False
 
 -- |'Parser' for a 'Request'.
-requestP ∷ Parser Request
-requestP = do skipMany crlf
-              (method, uri, version) ← requestLineP
-              headers                ← headersP
-              return Request {
-                           reqMethod  = method
-                         , reqURI     = uri
-                         , reqVersion = version
-                         , reqHeaders = headers
-                         }
+request ∷ Parser Request
+request = do skipMany crlf
+             (meth, u, ver) ← requestLine
+             hdrs           ← headers
+             return Request {
+                          reqMethod  = meth
+                        , reqURI     = u
+                        , reqVersion = ver
+                        , reqHeaders = hdrs
+                        }
 
-requestLineP ∷ Parser (Method, URI, HttpVersion)
-requestLineP = do method ← methodP
-                  sp
-                  uri    ← uriP
-                  sp
-                  ver    ← httpVersionP
-                  crlf
-                  return (method, uri, ver)
+requestLine ∷ Parser (Method, URI, HttpVersion)
+requestLine = do meth ← method
+                 sp
+                 u ← uri
+                 sp
+                 ver ← httpVersion
+                 crlf
+                 return (meth, u, ver)
 
-methodP ∷ Parser Method
-methodP = choice
-          [ string "OPTIONS" ≫ return OPTIONS
-          , string "GET"     ≫ return GET
-          , string "HEAD"    ≫ return HEAD
-          , string "POST"    ≫ return POST
-          , string "PUT"     ≫ return PUT
-          , string "DELETE"  ≫ return DELETE
-          , string "TRACE"   ≫ return TRACE
-          , string "CONNECT" ≫ return CONNECT
-          , ExtensionMethod <$> token
-          ]
+method ∷ Parser Method
+method = choice
+         [ string "OPTIONS" ≫ return OPTIONS
+         , string "GET"     ≫ return GET
+         , string "HEAD"    ≫ return HEAD
+         , string "POST"    ≫ return POST
+         , string "PUT"     ≫ return PUT
+         , string "DELETE"  ≫ return DELETE
+         , string "TRACE"   ≫ return TRACE
+         , string "CONNECT" ≫ return CONNECT
+         , ExtensionMethod <$> token
+         ]
 
-uriP ∷ Parser URI
-uriP = do bs ← takeWhile1 (\c → (¬) (isCtl c ∨ c ≡ '\x20'))
-          let str = C8.unpack bs
-          case parseURIReference str of
-            Nothing  -> fail ("Unparsable URI: " ⧺ str)
-            Just uri -> return uri
+uri ∷ Parser URI
+uri = do bs ← takeWhile1 (\c → (¬) (isCtl c ∨ c ≡ '\x20'))
+         let str = C8.unpack bs
+         case parseURIReference str of
+           Nothing → fail ("Unparsable URI: " ⧺ str)
+           Just u  → return u