{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-} module Tesla.Car.Command.Doors ( actuateFrontTrunk, actuateRearTrunk, lockDoors, unlockDoors ) where import Control.Monad.IO.Class (MonadIO (..)) import Network.Wreq (FormParam (..)) import Tesla.Car.Command atr :: MonadIO m => String -> Car m CommandResponse atr w = runCmd "actuate_trunk" [ "which_trunk" := w ] actuateFrontTrunk :: MonadIO m => Car m CommandResponse actuateFrontTrunk = atr "front" actuateRearTrunk :: MonadIO m => Car m CommandResponse actuateRearTrunk = atr "rear" mkNamedCommands [("lockDoors", "door_lock"), ("unlockDoors", "door_unlock")]