module View.Ad ( renderAd ) where import Data.List (intersperse) import Data.Maybe (fromMaybe) import Model.Ad (Ad(..)) import qualified Model.Ad as Ad import Model.Resume (Resume(..)) import qualified Model.Resume as Resume import Model.Detail (Detail(..)) import qualified Model.Detail as Detail renderAd :: Ad -> String renderAd ad = (renderResume (Ad.resume ad)) ++ "\n\n" ++ (renderDetail (Ad.detail ad)) ++ "\n" renderResume :: Resume -> String renderResume resume = let formatPrice price = " - " ++ price price = fromMaybe "" . fmap formatPrice . Resume.price $ resume titleLine = (Resume.name resume) ++ price in concat . intersperse "\n" $ [titleLine, Resume.url resume] renderDetail :: Detail -> String renderDetail detail = fromMaybe "−" (Detail.description detail)