module Fetch ( fetchResumes , fetchAds ) where import Data.Text (Text) import qualified Data.Text as T import Page (getPage) import Model.Ad import Model.Resume import Model.Detail import Model.URL import Parser.Resume import Parser.Detail fetchResumes :: URL -> IO (Either Text [Resume]) fetchResumes url = fmap parseResumes <$> getPage url fetchAds :: [Resume] -> IO (Either Text [Ad]) fetchAds resumes = do xs <- sequence $ map fetchAd resumes return $ sequence xs fetchAd :: Resume -> IO (Either Text Ad) fetchAd resume = do page <- getPage (url resume) fmap (\page -> Ad { resume = resume, detail = parseDetail page}) <$> getPage (url resume)