on master help sign in
roboservant/test/Valid.hs
44 lines 909 B history raw
1{-# LANGUAGE DataKinds #-}
2{-# LANGUAGE DeriveGeneric #-}
3{-# LANGUAGE DerivingStrategies #-}
5{-# LANGUAGE OverloadedStrings #-}
6{-# LANGUAGE TypeOperators #-}
8module Valid where
10import Data.Void
11import GHC.Generics
12import Servant
13import Servant.Server.Generic
15type Api =
16 Get '[JSON] Int
17 :<|> Capture "void" Void :> Get '[JSON] ()
19data Routes route
20 = Routes
21 { getInt ::
22 route
23 :- Summary "i'm a summary!" :> Get '[JSON] Int,
24 captureIt ::
25 route
26 :- Capture "void" Void :> Get '[JSON] ()
27 }
28 deriving (Generic)
30type RoutedApi = ToServantApi Routes
32-- routedApi = genericApi (Proxy :: Proxy Routes)
33routedServer :: Server RoutedApi
34routedServer = genericServer routes
36routes :: Routes AsServer
37routes =
38 Routes
39 { getInt = pure 7,
40 captureIt = const (pure ())
41 }
43server :: Server Api
44server = pure 7 :<|> const (pure ())