atndapi-0.1.0.0: An interface of ATND API

Safe HaskellNone
LanguageHaskell2010

Web.ATND

Contents

Description

Module for interface of the ATND JSON API.

Example usage to get events (in IO monad):

cfg <- defaultATNDConfig
runATND cfg $ do
  getEvents <[eventId]> <[keywords]> ... Nothing ...

To run in a monad that implements MonadIO, MonadLogger and MonadBaseControl IO (such as a Yesod Handler), use ATNDM.

Synopsis

The ATND/ATNDT monad

type ATND a = ATNDT (LoggingT IO) a Source

Alias of ATNDT with Logging

type ATNDT m a = (MonadIO m, MonadLogger m, MonadBaseControl IO m) => ReaderT ATNDConfig m a Source

ATND monad transformer

runATND :: MonadIO m => ATNDConfig -> ATNDT (LoggingT IO) a -> m a Source

Run ATND in IO, ignoring the existing monadic context and logging to stderr.

runATNDT :: (MonadIO m, MonadLogger m, MonadBaseControl IO m) => ATNDConfig -> ATNDT m a -> m a Source

Run ATNDT

Running query

query Source

Arguments

:: FromJSON x 
=> Section

ATND api type

-> [(ByteString, Maybe ByteString)]

List for Query String

-> ATNDT m x 

Run a query to ATND. Remove Nothing in the query list.

query' :: FromJSON x => Section -> [(ByteString, Maybe ByteString)] -> ATNDT m x Source

Run a query to ATND, for apply query list directry.

Config

data ATNDConfig Source

Represent the config for ATND/ATNDT

Constructors

ATNDConfig 

Fields

atndManager :: Manager
 

defaultATNDConfig :: MonadIO m => m ATNDConfig Source

Create a ATNDConfig with a new Manager

Error Handling