{-# LANGUAGE OverloadedStrings #-} module Request where import JSONTypes import Network.Wreq import Control.Lens import Data.Aeson import Data.Text as T import Data.Aeson.Lens (key, nth) import qualified Data.ByteString.Lazy.Internal as BL testFunc :: IO (JSONResponse JSONListMovies) testFunc = do r <- asJSON =<< get "https://yts.mx/api/v2/list_movies.json" pure $ r ^. responseBody getMovies :: IO (Either T.Text JSONListMovies) getMovies = do r <- asJSON =<< get "https://yts.mx/api/v2/list_movies.json" pure $ case (r ^. responseBody) of (JSONResponse "ok" _ d) -> Right d (JSONResponse _ m _) -> Left m