Output.purs 881 B

12345678910111213141516171819202122
  1. module LinkedIn.Output where
  2. import Prelude
  3. import Data.Either (Either)
  4. import Effect (Effect)
  5. import LinkedIn (run)
  6. import LinkedIn.Output.Types (Output(..))
  7. import LinkedIn.Page.JobOffer (JobOfferPage)
  8. import LinkedIn.Page.Projects (ProjectsPage)
  9. import LinkedIn.Page.Skills (SkillsPage)
  10. import LinkedIn.Page.WorkExperiences (WorkExperiencesPage)
  11. import LinkedIn.PageUrl (PageUrl(..))
  12. import Type.Proxy (Proxy(..))
  13. import Web.DOM (Document)
  14. toPage ∷ Partial ⇒ PageUrl → Document → Effect (Either String Output)
  15. toPage ctx dom = case ctx of
  16. UrlProjects _ -> map (map Projects) $ run (Proxy :: Proxy ProjectsPage) dom
  17. UrlSkills _ -> map (map Skills) $ run (Proxy :: Proxy SkillsPage) dom
  18. UrlWorkExperience _ -> map (map WorkExperiences) $ run (Proxy :: Proxy WorkExperiencesPage) dom
  19. UrlJobOffer _ -> map (map JobOffer) $ run (Proxy :: Proxy JobOfferPage) dom