{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeOperators #-}
module MixPanel.API
( API
, api
) where
import Data.Text ( Text )
import Data.Proxy ( Proxy(..) )
import Servant.API hiding ( URI )
import MixPanel.Types.Core ( DidSucceed, Toggle )
import MixPanel.Types.TrackData ( TrackData )
import MixPanel.Types.EngageData ( EngageData )
type Track = "track"
:> QueryParam' '[Required] "data" TrackData
:> QueryParam "ip" Toggle
:> QueryParam "redirect" Text
:> QueryParam "img" Toggle
:> QueryParam "callback" Text
:> QueryParam "verbose" Toggle
:> Get '[JSON] DidSucceed
type Engage = "engage"
:> QueryParam' '[Required] "data" EngageData
:> QueryParam "redirect" Text
:> QueryParam "callback" Text
:> QueryParam "verbose" Toggle
:> Get '[JSON] DidSucceed
type API = Track :<|> Engage
api :: Proxy API
api :: Proxy API
api = Proxy API
forall k (t :: k). Proxy t
Proxy