blob: cad4bc83eecb3f783239dc7d3030fac4bf2ffce4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
module Router where
import Control.Exception
import Response
import Request
-- Route callback url method
data Route = Route (Request -> IO Response) String String
data RouterError = RouteNotFound
deriving Show
instance Exception RouterError
resolve :: [Route] -> Request -> IO Response
resolve [] _ = return notFoundResponse
resolve (Route callback routeUrl _ : routerTable) req @ (Request _ url _) =
if url == routeUrl then
callback req
else resolve routerTable req
|