tmp-proc-example-0.5.0.0: src/TmpProc/Example2/Routes.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE OverloadedStrings #-}
{-|
Copyright : (c) 2020-2021 Tim Emiola
SPDX-License-Identifier: BSD3
Maintainer : Tim Emiola <adetokunbo@users.noreply.github.com>
Specifies the API provided by the demo service.
-}
module TmpProc.Example2.Routes
( -- * API route definition
ContactsAPI
, contactsAPI
)
where
import Data.Proxy (Proxy(..))
import Servant.API
import TmpProc.Example2.Schema
{-| API allowing 'Contact' creation and retrieval. -}
type ContactsAPI =
"contacts" :> Capture "contactid" ContactID :> Get '[JSON] Contact
:<|> "contacts" :> ReqBody '[JSON] Contact :> Post '[JSON] ContactID
{-| For convenience in "Servant" combinators where a proxy is required. -}
contactsAPI :: Proxy ContactsAPI
contactsAPI = Proxy :: Proxy ContactsAPI