nakadi-client-0.5.0.0: src/Network/Nakadi/EventTypes.hs
{-|
Module : Network.Nakadi.EventTypes
Description : Implementation of Nakadi EventTypes API
Copyright : (c) Moritz Schulte 2017, 2018
License : BSD3
Maintainer : mtesseract@silverratio.net
Stability : experimental
Portability : POSIX
This module implements the @\/event-types@ API.
-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module Network.Nakadi.EventTypes
( module Network.Nakadi.EventTypes.CursorDistances
, module Network.Nakadi.EventTypes.CursorsLag
, module Network.Nakadi.EventTypes.Events
, module Network.Nakadi.EventTypes.EventType
, module Network.Nakadi.EventTypes.Partitions
, module Network.Nakadi.EventTypes.ShiftedCursors
, module Network.Nakadi.EventTypes.Schemas
, eventTypesList
, eventTypeCreate
) where
import Network.Nakadi.Internal.Prelude
import Network.Nakadi.EventTypes.CursorDistances
import Network.Nakadi.EventTypes.CursorsLag
import Network.Nakadi.EventTypes.Events
import Network.Nakadi.EventTypes.EventType
import Network.Nakadi.EventTypes.Partitions
import Network.Nakadi.EventTypes.Schemas
import Network.Nakadi.EventTypes.ShiftedCursors
import Network.Nakadi.Internal.Http
path :: ByteString
path = "/event-types"
-- | @GET@ to @\/event-types@. Retrieves a list of all registered
-- event types.
eventTypesList ::
MonadNakadi b m
=> m [EventType] -- ^ Registered Event Types
eventTypesList = do
config <- nakadiAsk
httpJsonBody status200 [] $
(setRequestMethod "GET"
. includeFlowId config
. setRequestPath path)
-- | @POST@ to @\/event-types@. Creates a new event type.
eventTypeCreate ::
MonadNakadi b m
=> EventType -- ^ Event Type to create
-> m ()
eventTypeCreate eventType =
httpJsonNoBody status201 []
(setRequestMethod "POST"
. setRequestPath path
. setRequestBodyJSON eventType)