{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
module Network.PushNotification.Android where
import Data.Aeson (encode)
import Network.HTTP.Conduit
import qualified Data.ByteString.Char8 as C8
import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy as LBS
import Network.PushNotification.Android.Payload
sendAndroidPushMessage :: Manager
-> BS.ByteString
-> FcmPayload
-> IO (Response LBS.ByteString)
sendAndroidPushMessage mgr key p = do
target <- parseUrlThrow "https://fcm.googleapis.com/fcm/send"
let req = target
{ method = "POST"
, requestHeaders =
[ ("Authorization", BS.append "key=" $ C8.takeWhile (/='\n') key)
, ("Content-Type", "application/json")
]
, requestBody = RequestBodyLBS $ encode p
}
httpLbs req mgr