]> gitweb @ CieloNegro.org - Rakka.git/blob - Rakka/Resource/Page.hs
I'm getting tired so I must have a rest.
[Rakka.git] / Rakka / Resource / Page.hs
1 module Rakka.Resource.Page
2     ( fallbackPage
3     )
4     where
5
6 import           Data.Char
7 import           Network.HTTP.Lucu
8 import           Network.HTTP.Lucu.Utils
9 import           Rakka.Environment
10 import           Rakka.Page
11 import           Rakka.Resource.Page.Get
12
13
14 fallbackPage :: Environment -> [String] -> IO (Maybe ResourceDef)
15 fallbackPage env path
16     | null path                        = return Nothing
17     | null $ head path                 = return Nothing
18     | not $ isUpper $ head $ head path = return Nothing -- /Foo/bar のような形式でない。
19     | otherwise
20         = return $ Just $ ResourceDef {
21             resUsesNativeThread = False
22           , resIsGreedy         = True
23           , resGet              = Just $ handleGet env (toPageName path)
24           , resHead             = Nothing
25           , resPost             = Nothing
26           , resPut              = Just $ handlePut env (toPageName path)
27           , resDelete           = Just $ handleDelete env (toPageName path)
28           }
29
30
31 toPageName :: [String] -> PageName
32 toPageName = decodePageName . joinWith "/" 
33
34
35 handlePut :: Environment -> PageName -> Resource ()
36 handlePut = fail "FIXME: not implemented"
37
38
39 handleDelete :: Environment -> PageName -> Resource ()
40 handleDelete = fail "FIXME: not implemented"