This is a small library for interacting with the Pushover API from within Haskell.
Pushover exposes a straightforward API for sending notifications to users of the Android and iOS Pushover app. Details of the API can be found at https://pushover.net/api.
This library exposes a number of types which represent a Request
and a
Response
, and fields contained within these values. It provides functions
which can be used to create and make requests.
A basic request can be made as follows:-
>>> apiKey = makeTokenOrError "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
>>> userKey = makeTokenOrError "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
>>> sendMessage apiK usrK $ text "This is a test"
Assuming the keys are correct, this should immediately send the notification
to the user with userKey
.
The makeTokenOrError
function shown here should not generally be used.
Instead, the makeToken
function checks the validity of the token and wraps
the output in Either.
A more useful approach is to integrate Pushover into your existing Monad stack.
This can be accomplished using the createKeys
and sendMessageM
functions:-
>>> keys = createKeys "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
>>> keys >>= runReaderT (sendMessageM $ text "This is a test")
The Monad-based functions (all with a trailing M
in their name) require that
a request is executed within a stack including an instance of MonadError and
MonadIO. sendMessageM
additionally requires a MonadReader and an instance of
PushoverReader
. See
the Reader module
for more details.