{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE TypeOperators #-} module Minilang.API where import Data.Aeson (FromJSON, ToJSON) import Data.Time (UTCTime) import GHC.Generics (Generic) import Servant (Get, JSON, (:<|>), (:>), Raw) data Score = Score { name :: String, grade :: Int, lastTest :: UTCTime } deriving (Eq, Show, Generic, ToJSON, FromJSON) type LambdaAPI = "api" :> "leaderboard" :> Get '[JSON] [Score] :<|> Raw