{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
module Network.Nakadi.EventTypes.Events
( eventsPublish
)
where
import Network.Nakadi.Internal.Prelude
import Data.Aeson
import Network.Nakadi.Internal.Http
path :: EventTypeName -> ByteString
path eventTypeName = "/event-types/" <> encodeUtf8 (unEventTypeName eventTypeName) <> "/events"
eventsPublish :: (MonadNakadi b m, ToJSON a) => EventTypeName -> [a] -> m ()
eventsPublish eventTypeName eventBatch = do
config <- nakadiAsk
httpJsonNoBody
status200
[(Status 207 "Multi-Status", errorBatchPartiallySubmitted), (status422, errorBatchNotSubmitted)]
( setRequestMethod "POST"
. includeFlowId config
. setRequestPath (path eventTypeName)
. setRequestBodyJSON eventBatch
)