nakadi-client-0.6.0.0: src/Network/Nakadi/EventTypes.hs
{-|
Module : Network.Nakadi.EventTypes
Description : Implementation of Nakadi EventTypes API
Copyright : (c) Moritz Clasmeier 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)