module Web.VKHS.API.JSON ( api ) where import Control.Monad import Control.Monad.Trans import Control.Monad.Writer import Control.Monad.Error import Text.JSON as J import Web.VKHS.Types import qualified Web.VKHS.API as Base liftR (Ok a) = return a liftR (Error s) = fail s api :: Env -> AccessToken -> String -> [(String,String)] -> IO (Either String JSValue) api e a mn mp = runErrorT $ ErrorT (Base.api e a mn mp) >>= liftR . J.decode