module Network.Pushbullet.Types.Permanent where
import Network.Pushbullet.Types.Device
import Network.Pushbullet.Types.SMS
import Data.Monoid ( (<>) )
import Web.HttpApiData ( ToHttpApiData(..) )
data PermanentK
= ThreadListK
| MessageListK
data Permanent (p :: PermanentK) where
ThreadsOf :: !DeviceId -> Permanent 'ThreadListK
MessagesIn :: !DeviceId -> !SmsThreadId -> Permanent 'MessageListK
instance ToHttpApiData (Permanent 'ThreadListK) where
toUrlPiece p = case p of
ThreadsOf (DeviceId d) -> d <> "_threads"
instance ToHttpApiData (Permanent 'MessageListK) where
toUrlPiece p = case p of
MessagesIn (DeviceId d) (SmsThreadId t) -> d <> "_thread_" <> t