git.iko.soy/typeable/request-track
on master help sign in
Handler wrapper must have two parameters.
db625c2Nick
request-track-servant/src/Web/Tracking/Servant/Types.hs+5−6
@@ -3,7 +3,6 @@
3{-# LANGUAGE UndecidableInstances #-}
3{-# LANGUAGE UndecidableInstances #-}
4module Web.Tracking.Servant.Types where
4module Web.Tracking.Servant.Types where
5
5
6−import Web.Tracking
7import Web.Tracking
6import Web.Tracking
8
7
9import Control.Monad ((<=<))
8import Control.Monad ((<=<))
@@ -24,15 +23,15 @@ type family TrackingData :: Type -> Type
24-- | Same as above, except no argument is passed to a handler.
23-- | Same as above, except no argument is passed to a handler.
25data RequestTracking_
24data RequestTracking_
26
25
27−newtype ReqtrackingHandler o = ReqtrackingHandler { unReqtrackingHandler :: Maybe ReqtrackInfo -> Handler o
26+newtype ReqtrackingHandler r o = ReqtrackingHandler { unReqtrackingHandler :: r -> Handler o
28− } deriving (Functor)
27+ } deriving (Functor)
29
28
30−mkReqtrackingHandler :: (Maybe ReqtrackInfo -> Handler o) -> ReqtrackingHandler o
29+mkReqtrackingHandler :: (Maybe ReqtrackInfo -> Handler o) -> ReqtrackingHandler (Maybe ReqtrackInfo) o
31mkReqtrackingHandler = ReqtrackingHandler
30mkReqtrackingHandler = ReqtrackingHandler
32
31
33instance forall (api :: Type) context.
32instance forall (api :: Type) context.
34 ( HasServer api context
33 ( HasServer api context
35− , HasContextEntry context (ReqtrackingHandler (TrackingData RequestTracking))
34+ , HasContextEntry context (ReqtrackingHandler (Maybe ReqtrackInfo) (TrackingData RequestTracking))
36 ) => HasServer (RequestTracking :> api) context where
35 ) => HasServer (RequestTracking :> api) context where
37 type ServerT (RequestTracking :> api) m = TrackingData RequestTracking -> ServerT api m
36 type ServerT (RequestTracking :> api) m = TrackingData RequestTracking -> ServerT api m
38
37
@@ -47,7 +46,7 @@ instance forall (api :: Type) context.
47
46
48instance forall (api :: Type) context.
47instance forall (api :: Type) context.
49 ( HasServer api context
48 ( HasServer api context
50− , HasContextEntry context (ReqtrackingHandler ())
49+ , HasContextEntry context (ReqtrackingHandler (Maybe ReqtrackInfo) ())
51 ) => HasServer (RequestTracking_ :> api) context where
50 ) => HasServer (RequestTracking_ :> api) context where
52 type ServerT (RequestTracking_ :> api) m = ServerT api m
51 type ServerT (RequestTracking_ :> api) m = ServerT api m
53
52