{-# LANGUAGE OverloadedStrings #-}
module Api
( getCurrencies
, getPersonalInfo
, getPersonalStatement
, getPersonalStatementFull
) where
import Data.Aeson
import qualified Data.ByteString.Char8 as B
import qualified Data.ByteString.Lazy.Char8 as BL
import qualified Data.Text as T
import Network.HTTP.Conduit (simpleHttp)
import Types
import Utils
--------------------------------------------------------------------------------
endpoint :: T.Text
endpoint = "https://api.monobank.ua"
-- Get a basic list of monobank currency rates.
-- Information is cached and updated no more than once every 5 minutes.
--
-- GET /bank/currency
getCurrencies :: IO [CurrencyPair]
getCurrencies = do
let path = T.concat [endpoint, "/bank/currency"]
-- results <- fmap decodeEither $ simpleHttp (T.unpack path)
resp <- simpleHttp (T.unpack path)
--putStrLn $ show $ resp
let res = eitherDecode resp
case res of
Left err -> do
putStrLn err
return $ []
Right val -> do
return $ val
-- GET /personal/client-info
getPersonalInfo = undefined
-- Receive an extract for the time from {to} to {to} time in seconds Unix time format.
-- The maximum time for which it is possible to extract an extract is 31 days
-- (2678400 seconds) Limit on the use of the function no more than 1 time in 60 seconds.
--
-- GET /personal/statement/{account}/{from}/{to}
getPersonalStatement = undefined
-- Get Personal Statement from beginning
-- 12 months will take 12 minutes
getPersonalStatementFull = undefined