2 | import public Stellar.HTTP.Types
3 | import Stellar.HTTP.DSL
4 | import public Stellar.API
5 | import public Stellar.API.Morphism
6 | import public Stellar.API.Maybe
8 | import Control.Monad.Continuation
12 | import Node.HTTP.IncomingMessage
16 | import public Stellar.HTTP.Engine
20 | attachRouter : {0 a, b : API} -> (router : a =&> All.Maybe b) -> (server : IO $- b =&> End) -> IO $- a =&> End
21 | attachRouter {a, b} router server = map_Lift router
23 | |&> map_Maybe server
27 | parameters (cfg : ServerConfig)
30 | http' : Costate (IO $- PlainHTTP) -> IO ()
31 | http' = http cfg . extract
35 | httpJSON : Costate (IO $- JSONHTTP) -> IO ()
36 | httpJSON m = http' (CheckHeader.execJSON m)
40 | httpJSONNoCheck : Costate (IO $- JSONHTTP) -> IO ()
41 | httpJSONNoCheck m = http' (NoCheck.execJSON m)