module Network.Pushbullet.Client where
import Network.Pushbullet.Api
import Network.Pushbullet.Types
import Servant.Client
import Servant.Common.Req ( addHeader )
import Servant.API hiding ( addHeader )
type instance AuthClientData (AuthProtect PushbulletAuth) = PushbulletKey
pushbulletApiClient :: Client PushbulletApi
pushbulletApiClient = client pushbulletApi
(createPush :<|> getPushes)
:<|> createEphemeral
:<|> getMe
:<|> (getDevices :<|> createDevice :<|> deleteDevice)
:<|> (getSmsThreads :<|> getSmsMessages)
= pushbulletApiClient
pushbulletAuth :: PushbulletKey -> AuthenticateReq (AuthProtect PushbulletAuth)
pushbulletAuth key = mkAuthenticateReq key f where
f = addHeader "Access-Token"