-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathGetDX.hs
29 lines (24 loc) · 867 Bytes
/
GetDX.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE TypeOperators #-}
module GetDX where
import Data.Aeson (FromJSON, ToJSON)
import Data.Text (Text)
import GHC.Generics (Generic)
import Servant.API (Header', JSON, Post, ReqBody, Required, Strict, (:>))
data EventsTrackRequest = EventsTrackRequest
{ name :: Text
, timestamp :: Text
, email :: Text
} deriving stock (Generic, Show)
deriving anyclass (ToJSON)
data EventsTrackResponse = EventsTrackResponse{ ok :: Bool, error :: Maybe Text }
deriving stock (Generic, Show)
deriving anyclass (FromJSON)
type API =
Header' [Required, Strict] "Authorization" Text
:> "events.track"
:> ReqBody '[JSON] EventsTrackRequest
:> Post '[JSON] EventsTrackResponse