MyNixOS website logo
Description

A Haskell Pushover API library.

This package provides functionality to allow Haskell developers to interact with the Pushover API (https://pushover.net).

Pushover

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.

Usage

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.

Basic

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.

Reader-based

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.

Metadata

Version

0.1.0.1

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows