module Prosper.Internal.JSON
( jsonGet
, jsonGetHandler
, investRequest
) where
import Network.Http.Client
import System.IO.Streams (InputStream)
import Data.Aeson (FromJSON)
import Data.ByteString (ByteString)
import qualified Data.ByteString.Char8 as C
import Data.Monoid ((<>))
import Prosper.Internal.Request
import Prosper.Invest
import Prosper.Money
import Prosper.User
jsonGet
:: FromJSON a
=> User
-> ByteString
-> IO a
jsonGet userInfo url =
issueRequest userInfo url GET "application/json" jsonHandler []
jsonGetHandler
:: FromJSON a
=> User
-> ByteString
-> (Response -> InputStream ByteString -> IO a)
-> IO a
jsonGetHandler userInfo url handler =
issueRequest userInfo url GET "application/json" handler []
investRequest
:: User
-> Int
-> Money
-> IO InvestResponse
investRequest userInfo listingId amount =
issueRequest userInfo "Invest" POST "application/x-www-form-urlencoded" jsonHandler
[ ("listingId", C.pack $ show listingId)
, ("amount", C.pack $ show amount)
]