snaplet-wordpress-0.1.1.0: src/Snap/Snaplet/Wordpress/HTTP.hs
{-# LANGUAGE OverloadedStrings #-}
module Snap.Snaplet.Wordpress.HTTP where
import Control.Lens
import Data.Monoid
import Data.Text (Text)
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
import qualified Data.Text.Lazy as TL
import qualified Data.Text.Lazy.Encoding as TL
import qualified Network.Wreq as W
newtype Requester = Requester { unRequester :: Text -> [(Text, Text)] -> IO Text }
wreqRequester :: (Text -> IO ())
-> Text
-> Text
-> Requester
wreqRequester logger user passw =
Requester $ \u ps -> do let opts = (W.defaults & W.params .~ ps
& W.auth .~ W.basicAuth user' pass')
logger $ "wreq: " <> u <> " with params: " <>
(T.intercalate "&" . map (\(a,b) -> a <> "=" <> b) $ ps)
r <- W.getWith opts (T.unpack u)
return $ TL.toStrict . TL.decodeUtf8 $ r ^. W.responseBody
where user' = T.encodeUtf8 user
pass' = T.encodeUtf8 passw