pushbullet-0.0.0: src/Network/Pushbullet.hs
{-# LANGUAGE OverloadedStrings #-}
module Network.Pushbullet (
sendPush
, module PBT
)where
import Control.Lens ((&), (?~))
import Data.Aeson
import qualified Data.HashMap.Strict as H
import Data.Monoid
import Network.Pushbullet.Internal
import Network.Pushbullet.Types as PBT
import Network.Wreq
-- | Send a push to a given device
-- if device is
sendPush :: PushSecret -- ^ Access Token for pushbullet
-> Maybe DeviceId -- ^ Send to a specific device. If Nothing it will broadcast
-> PushBullet -- ^ Message to push
-> IO () -- ^ Will eventuall return some sort of error/success
sendPush secret d p = do
_ <- postWith
(defaults & auth ?~ (unPushSecret secret))
"https://api.pushbullet.com/v2/pushes"
(addDeviceIden d $ toJSON p)
return ()
addDeviceIden :: Maybe DeviceId -> Value -> Value
addDeviceIden (Just devId) (Object o) =
Object $
o <> H.fromList ["device_iden" .= unDeviceId devId]
addDeviceIden _ v = v