roboservant/test/Valid.hs
2022-12-15 12:58:44 +07:00

45 lines
909 B
Haskell

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeOperators #-}
module Valid where
import Data.Void
import GHC.Generics
import Servant
import Servant.Server.Generic
type Api =
Get '[JSON] Int
:<|> Capture "void" Void :> Get '[JSON] ()
data Routes route
= Routes
{ getInt ::
route
:- Summary "i'm a summary!" :> Get '[JSON] Int,
captureIt ::
route
:- Capture "void" Void :> Get '[JSON] ()
}
deriving (Generic)
type RoutedApi = ToServantApi Routes
-- routedApi = genericApi (Proxy :: Proxy Routes)
routedServer :: Server RoutedApi
routedServer = genericServer routes
routes :: Routes AsServer
routes =
Routes
{ getInt = pure 7,
captureIt = const (pure ())
}
server :: Server Api
server = pure 7 :<|> const (pure ())