module Web.HackerNews
(
hackerNews
, getStory
, getComment
, getPoll
, getPollOpt
, getUser
, getJob
, getTopStories
, getMaxItem
, getUpdates
, HackerNews
, Comment (..)
, CommentId (..)
, Poll (..)
, PollId (..)
, PollOpt (..)
, PollOptId (..)
, Story (..)
, StoryId (..)
, User (..)
, UserId (..)
, Job (..)
, JobId (..)
, Update (..)
, MaxItem
, TopStories
) where
import Data.Monoid ((<>))
import Web.HackerNews.Types
import Web.HackerNews.Util (toText)
import Web.HackerNews.Client
getStory :: StoryId -> HackerNews (Maybe Story)
getStory (StoryId storyid) = buildHNRequest $ "item/" <> toText storyid
getComment :: CommentId -> HackerNews (Maybe Comment)
getComment (CommentId commentid) = buildHNRequest $ "item/" <> toText commentid
getPoll :: PollId -> HackerNews (Maybe Poll)
getPoll (PollId pollid) = buildHNRequest $ "item/" <> toText pollid
getPollOpt :: PollOptId -> HackerNews (Maybe PollOpt)
getPollOpt (PollOptId polloptid) = buildHNRequest $ "item/" <> toText polloptid
getUser :: UserId -> HackerNews (Maybe User)
getUser (UserId userid) = buildHNRequest $ "user/" <> userid
getJob :: JobId -> HackerNews (Maybe Job)
getJob (JobId jobid) = buildHNRequest $ "item/" <> toText jobid
getTopStories :: HackerNews (Maybe TopStories)
getTopStories = buildHNRequest "topstories"
getMaxItem :: HackerNews (Maybe MaxItem)
getMaxItem = buildHNRequest "maxitem"
getUpdates :: HackerNews (Maybe Update)
getUpdates = buildHNRequest "updates"