module Fetch ( fetchResumes , fetchAds ) where import Data.Text (Text) import Page import Model.Ad (Ad(Ad)) import Model.Resume (Resume) import qualified Model.Resume as Resume import Model.URL (URL) import qualified Parser.Resume as Resume import qualified Parser.Detail as Detail fetchResumes :: URL -> IO (Either Text [Resume]) fetchResumes url = fmap Resume.parse <$> Page.get 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 = fmap (\ad -> Ad resume (Detail.parse ad)) <$> Page.get (Resume.url resume)