mirror of
https://github.com/ilyakooo0/roboservant.git
synced 2024-10-05 12:37:17 +03:00
45 lines
909 B
Haskell
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 ())
|