-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | API for Hacker News
--
-- API for news.ycombinator.com
@package hackernews
@version 1.1.2.0
-- | Haskell port of https://github.com/HackerNews/API
module Web.HackerNews.Types
-- | The item and profile changes are at
-- https://hacker-news.firebaseio.com/v0/updates
data Updates
Updates :: [ItemId] -> [UserName] -> Updates
-- | Updated Items
[items] :: Updates -> [ItemId]
-- | Updated UserNames
[profiles] :: Updates -> [UserName]
-- | The current largest item id is at
-- https://hacker-news.firebaseio.com/v0/maxitem. You can walk
-- backward from here to discover all items.
newtype MaxItem
MaxItem :: ItemId -> MaxItem
-- | https://hacker-news.firebaseio.com/v0/topstories
newtype TopStories
TopStories :: [ItemId] -> TopStories
-- | https://hacker-news.firebaseio.com/v0/newstories
newtype NewStories
NewStories :: [ItemId] -> NewStories
-- | https://hacker-news.firebaseio.com/v0/beststories
newtype BestStories
BestStories :: [ItemId] -> BestStories
-- | https://hacker-news.firebaseio.com/v0/askstories
newtype AskStories
AskStories :: [ItemId] -> AskStories
-- | https://hacker-news.firebaseio.com/v0/showstories
newtype ShowStories
ShowStories :: [ItemId] -> ShowStories
-- | https://hacker-news.firebaseio.com/v0/jobstories
newtype JobStories
JobStories :: [ItemId] -> JobStories
-- | Users are identified by case-sensitive ids, and live under
-- https://hacker-news.firebaseio.com/v0/user/. Only users that
-- have public activity (comments or story submissions) on the site are
-- available through the API.
data User
User :: UserId -> Maybe Delay -> Created -> Karma -> Maybe About -> Maybe Submitted -> User
-- | The user's unique username. Case-sensitive. Required.
[userId] :: User -> UserId
-- | Delay in minutes between a comment's creation and its visibility to
-- other users.
[userDelay] :: User -> Maybe Delay
-- | Creation date of the user, in Unix Time.
[userCreated] :: User -> Created
-- | The user's karma
[userKarma] :: User -> Karma
-- | The user's optional self-description. HTML.
[userAbout] :: User -> Maybe About
-- | List of the user's stories, polls and comments.
[userSubmitted] :: User -> Maybe Submitted
-- | The user's karma.
newtype Karma
Karma :: Int -> Karma
-- | The user's unique username. Case-sensitive. Required.
newtype UserId
UserId :: Text -> UserId
-- | Delay in minutes between a comment's creation and its visibility to
-- other users.
newtype Delay
Delay :: Int -> Delay
-- | Creation date of the user, in Unix Time.
newtype Created
Created :: Int -> Created
-- | The user's optional self-description. HTML.
newtype About
About :: Text -> About
-- | List of the user's stories, polls and comments.
newtype Submitted
Submitted :: [ItemId] -> Submitted
-- | The item's unique id.
newtype ItemId
ItemId :: Int -> ItemId
-- | true if the item is deleted.
newtype Deleted
Deleted :: Bool -> Deleted
-- | The type of item. One of "job", "story", "comment", "poll", or
-- "pollopt"
data ItemType
Job :: ItemType
Story :: ItemType
Comment :: ItemType
Poll :: ItemType
PollOpt :: ItemType
-- | The username of the item's author.
newtype UserName
UserName :: Text -> UserName
-- | The comment, story or poll text. HTML.
newtype ItemText
ItemText :: Text -> ItemText
-- | true if the item is dead.
newtype Dead
Dead :: Bool -> Dead
-- | The item's parent. For comments, either another comment or the
-- relevant story. For pollopts, the relevant poll.
newtype Parent
Parent :: ItemId -> Parent
-- | Creation date of the item, in Unix Time.
newtype Time
Time :: Integer -> Time
-- | The ids of the item's comments, in ranked display order.
newtype Kids
Kids :: [ItemId] -> Kids
-- | The URL of the story.
newtype URL
URL :: Text -> URL
-- | The story's score, or the votes for a pollopt.
newtype Score
Score :: Int -> Score
-- | The title of the story, poll or job.
newtype Title
Title :: Text -> Title
-- | A list of related pollopts, in display order.
newtype Parts
Parts :: [ItemId] -> Parts
-- | In the case of stories or polls, the total comment count.
newtype Descendants
Descendants :: Int -> Descendants
-- | Stories, comments, jobs, Ask HNs and even polls are just items.
-- They're identified by their ids, which are unique integers, and live
-- under https://hacker-news.firebaseio.com/v0/item/.
data Item
Item :: Maybe ItemId -> Maybe Deleted -> ItemType -> Maybe UserName -> Maybe Time -> Maybe ItemText -> Maybe Dead -> Maybe Parent -> Maybe Kids -> Maybe URL -> Maybe Score -> Maybe Title -> Maybe Parts -> Maybe Descendants -> Item
[itemId] :: Item -> Maybe ItemId
[itemDeleted] :: Item -> Maybe Deleted
[itemType] :: Item -> ItemType
[itemBy] :: Item -> Maybe UserName
[itemTime] :: Item -> Maybe Time
[itemText] :: Item -> Maybe ItemText
[itemDead] :: Item -> Maybe Dead
[itemParent] :: Item -> Maybe Parent
[itemKids] :: Item -> Maybe Kids
[itemURL] :: Item -> Maybe URL
[itemScore] :: Item -> Maybe Score
[itemTitle] :: Item -> Maybe Title
[itemParts] :: Item -> Maybe Parts
[itemDescendants] :: Item -> Maybe Descendants
-- | Error handling for HackerNewsAPI
data HackerNewsError
NotFound :: HackerNewsError
FailureResponseError :: Int -> Text -> Text -> HackerNewsError
HNConnectionError :: Text -> HackerNewsError
DecodeFailureError :: Text -> Text -> HackerNewsError
InvalidContentTypeHeaderError :: Text -> Text -> HackerNewsError
UnsupportedContentTypeError :: Text -> HackerNewsError
instance GHC.Classes.Eq Web.HackerNews.Types.HackerNewsError
instance GHC.Show.Show Web.HackerNews.Types.HackerNewsError
instance GHC.Generics.Generic Web.HackerNews.Types.Item
instance GHC.Classes.Eq Web.HackerNews.Types.Item
instance GHC.Show.Show Web.HackerNews.Types.Item
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Descendants
instance GHC.Generics.Generic Web.HackerNews.Types.Descendants
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Descendants
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Descendants
instance GHC.Classes.Eq Web.HackerNews.Types.Descendants
instance GHC.Show.Show Web.HackerNews.Types.Descendants
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Parts
instance GHC.Generics.Generic Web.HackerNews.Types.Parts
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Parts
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Parts
instance GHC.Classes.Eq Web.HackerNews.Types.Parts
instance GHC.Show.Show Web.HackerNews.Types.Parts
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Title
instance GHC.Generics.Generic Web.HackerNews.Types.Title
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Title
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Title
instance GHC.Classes.Eq Web.HackerNews.Types.Title
instance GHC.Show.Show Web.HackerNews.Types.Title
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Score
instance GHC.Generics.Generic Web.HackerNews.Types.Score
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Score
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Score
instance GHC.Classes.Eq Web.HackerNews.Types.Score
instance GHC.Show.Show Web.HackerNews.Types.Score
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.URL
instance GHC.Generics.Generic Web.HackerNews.Types.URL
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.URL
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.URL
instance GHC.Classes.Eq Web.HackerNews.Types.URL
instance GHC.Show.Show Web.HackerNews.Types.URL
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Kids
instance GHC.Generics.Generic Web.HackerNews.Types.Kids
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Kids
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Kids
instance GHC.Classes.Eq Web.HackerNews.Types.Kids
instance GHC.Show.Show Web.HackerNews.Types.Kids
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Time
instance GHC.Generics.Generic Web.HackerNews.Types.Time
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Time
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Time
instance GHC.Classes.Eq Web.HackerNews.Types.Time
instance GHC.Show.Show Web.HackerNews.Types.Time
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Parent
instance GHC.Generics.Generic Web.HackerNews.Types.Parent
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Parent
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Parent
instance GHC.Classes.Eq Web.HackerNews.Types.Parent
instance GHC.Show.Show Web.HackerNews.Types.Parent
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Dead
instance GHC.Generics.Generic Web.HackerNews.Types.Dead
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Dead
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Dead
instance GHC.Classes.Eq Web.HackerNews.Types.Dead
instance GHC.Show.Show Web.HackerNews.Types.Dead
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.ItemText
instance GHC.Generics.Generic Web.HackerNews.Types.ItemText
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.ItemText
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.ItemText
instance GHC.Classes.Eq Web.HackerNews.Types.ItemText
instance GHC.Show.Show Web.HackerNews.Types.ItemText
instance GHC.Generics.Generic Web.HackerNews.Types.Updates
instance GHC.Classes.Eq Web.HackerNews.Types.Updates
instance GHC.Show.Show Web.HackerNews.Types.Updates
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.UserName
instance GHC.Generics.Generic Web.HackerNews.Types.UserName
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.UserName
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.UserName
instance GHC.Classes.Eq Web.HackerNews.Types.UserName
instance GHC.Show.Show Web.HackerNews.Types.UserName
instance GHC.Enum.Enum Web.HackerNews.Types.ItemType
instance GHC.Generics.Generic Web.HackerNews.Types.ItemType
instance GHC.Classes.Eq Web.HackerNews.Types.ItemType
instance GHC.Show.Show Web.HackerNews.Types.ItemType
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Deleted
instance GHC.Generics.Generic Web.HackerNews.Types.Deleted
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Deleted
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Deleted
instance GHC.Classes.Eq Web.HackerNews.Types.Deleted
instance GHC.Show.Show Web.HackerNews.Types.Deleted
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.MaxItem
instance GHC.Generics.Generic Web.HackerNews.Types.MaxItem
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.MaxItem
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.MaxItem
instance GHC.Classes.Eq Web.HackerNews.Types.MaxItem
instance GHC.Show.Show Web.HackerNews.Types.MaxItem
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.TopStories
instance GHC.Generics.Generic Web.HackerNews.Types.TopStories
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.TopStories
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.TopStories
instance GHC.Classes.Eq Web.HackerNews.Types.TopStories
instance GHC.Show.Show Web.HackerNews.Types.TopStories
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.NewStories
instance GHC.Generics.Generic Web.HackerNews.Types.NewStories
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.NewStories
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.NewStories
instance GHC.Classes.Eq Web.HackerNews.Types.NewStories
instance GHC.Show.Show Web.HackerNews.Types.NewStories
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.BestStories
instance GHC.Generics.Generic Web.HackerNews.Types.BestStories
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.BestStories
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.BestStories
instance GHC.Classes.Eq Web.HackerNews.Types.BestStories
instance GHC.Show.Show Web.HackerNews.Types.BestStories
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.AskStories
instance GHC.Generics.Generic Web.HackerNews.Types.AskStories
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.AskStories
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.AskStories
instance GHC.Classes.Eq Web.HackerNews.Types.AskStories
instance GHC.Show.Show Web.HackerNews.Types.AskStories
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.ShowStories
instance GHC.Generics.Generic Web.HackerNews.Types.ShowStories
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.ShowStories
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.ShowStories
instance GHC.Classes.Eq Web.HackerNews.Types.ShowStories
instance GHC.Show.Show Web.HackerNews.Types.ShowStories
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.JobStories
instance GHC.Generics.Generic Web.HackerNews.Types.JobStories
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.JobStories
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.JobStories
instance GHC.Classes.Eq Web.HackerNews.Types.JobStories
instance GHC.Show.Show Web.HackerNews.Types.JobStories
instance GHC.Generics.Generic Web.HackerNews.Types.User
instance GHC.Classes.Eq Web.HackerNews.Types.User
instance GHC.Show.Show Web.HackerNews.Types.User
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Submitted
instance GHC.Generics.Generic Web.HackerNews.Types.Submitted
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Submitted
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Submitted
instance GHC.Classes.Eq Web.HackerNews.Types.Submitted
instance GHC.Show.Show Web.HackerNews.Types.Submitted
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.ItemId
instance GHC.Generics.Generic Web.HackerNews.Types.ItemId
instance Web.Internal.HttpApiData.ToHttpApiData Web.HackerNews.Types.ItemId
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.ItemId
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.ItemId
instance GHC.Classes.Eq Web.HackerNews.Types.ItemId
instance GHC.Show.Show Web.HackerNews.Types.ItemId
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.About
instance GHC.Generics.Generic Web.HackerNews.Types.About
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.About
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.About
instance GHC.Classes.Eq Web.HackerNews.Types.About
instance GHC.Show.Show Web.HackerNews.Types.About
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Created
instance GHC.Generics.Generic Web.HackerNews.Types.Created
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Created
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Created
instance GHC.Classes.Eq Web.HackerNews.Types.Created
instance GHC.Show.Show Web.HackerNews.Types.Created
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Delay
instance GHC.Generics.Generic Web.HackerNews.Types.Delay
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Delay
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Delay
instance GHC.Classes.Eq Web.HackerNews.Types.Delay
instance GHC.Show.Show Web.HackerNews.Types.Delay
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.UserId
instance GHC.Generics.Generic Web.HackerNews.Types.UserId
instance Web.Internal.HttpApiData.ToHttpApiData Web.HackerNews.Types.UserId
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.UserId
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.UserId
instance GHC.Classes.Eq Web.HackerNews.Types.UserId
instance GHC.Show.Show Web.HackerNews.Types.UserId
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Karma
instance GHC.Generics.Generic Web.HackerNews.Types.Karma
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Karma
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Karma
instance GHC.Classes.Eq Web.HackerNews.Types.Karma
instance GHC.Show.Show Web.HackerNews.Types.Karma
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Updates
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Updates
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Updates
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.User
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.User
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.User
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.ItemType
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.ItemType
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.ItemType
instance Test.QuickCheck.Arbitrary.Arbitrary Web.HackerNews.Types.Item
instance Data.Aeson.Types.ToJSON.ToJSON Web.HackerNews.Types.Item
instance Data.Aeson.Types.FromJSON.FromJSON Web.HackerNews.Types.Item
-- | Haskell port of https://github.com/HackerNews/API
module Web.HackerNews
-- | HackerNews API
type HackerNewsAPI = ("item" :> (HackerCapture ItemId :> Get '[JSON] Item)) :<|> (("user" :> (HackerCapture UserId :> Get '[JSON] User)) :<|> (("maxitem.json" :> Get '[JSON] MaxItem) :<|> (("topstories.json" :> Get '[JSON] TopStories) :<|> (("newstories.json" :> Get '[JSON] NewStories) :<|> (("beststories.json" :> Get '[JSON] BestStories) :<|> (("askstories.json" :> Get '[JSON] AskStories) :<|> (("showstories.json" :> Get '[JSON] ShowStories) :<|> (("jobstories.json" :> Get '[JSON] JobStories) :<|> ("updates.json" :> Get '[JSON] Updates)))))))))
-- | Custom combinator for appending '.json' to Item query
data HackerCapture (a :: *)
-- | Retrieve Item
getItem :: Manager -> ItemId -> IO (Either HackerNewsError Item)
-- | Retrieve User
getUser :: Manager -> UserId -> IO (Either HackerNewsError User)
-- | Retrieve MaxItem
getMaxItem :: Manager -> IO (Either HackerNewsError MaxItem)
-- | Retrieve TopStories
getTopStories :: Manager -> IO (Either HackerNewsError TopStories)
-- | Retrieve NewStories
getNewStories :: Manager -> IO (Either HackerNewsError NewStories)
-- | Retrieve BestStories
getBestStories :: Manager -> IO (Either HackerNewsError BestStories)
-- | Retrieve AskStories
getAskStories :: Manager -> IO (Either HackerNewsError AskStories)
-- | Retrieve ShowStories
getShowStories :: Manager -> IO (Either HackerNewsError ShowStories)
-- | Retrieve JobStories
getJobStories :: Manager -> IO (Either HackerNewsError JobStories)
-- | Retrieve Updates
getUpdates :: Manager -> IO (Either HackerNewsError Updates)
-- | Stories, comments, jobs, Ask HNs and even polls are just items.
-- They're identified by their ids, which are unique integers, and live
-- under https://hacker-news.firebaseio.com/v0/item/.
data Item
Item :: Maybe ItemId -> Maybe Deleted -> ItemType -> Maybe UserName -> Maybe Time -> Maybe ItemText -> Maybe Dead -> Maybe Parent -> Maybe Kids -> Maybe URL -> Maybe Score -> Maybe Title -> Maybe Parts -> Maybe Descendants -> Item
[itemId] :: Item -> Maybe ItemId
[itemDeleted] :: Item -> Maybe Deleted
[itemType] :: Item -> ItemType
[itemBy] :: Item -> Maybe UserName
[itemTime] :: Item -> Maybe Time
[itemText] :: Item -> Maybe ItemText
[itemDead] :: Item -> Maybe Dead
[itemParent] :: Item -> Maybe Parent
[itemKids] :: Item -> Maybe Kids
[itemURL] :: Item -> Maybe URL
[itemScore] :: Item -> Maybe Score
[itemTitle] :: Item -> Maybe Title
[itemParts] :: Item -> Maybe Parts
[itemDescendants] :: Item -> Maybe Descendants
-- | Users are identified by case-sensitive ids, and live under
-- https://hacker-news.firebaseio.com/v0/user/. Only users that
-- have public activity (comments or story submissions) on the site are
-- available through the API.
data User
User :: UserId -> Maybe Delay -> Created -> Karma -> Maybe About -> Maybe Submitted -> User
-- | The user's unique username. Case-sensitive. Required.
[userId] :: User -> UserId
-- | Delay in minutes between a comment's creation and its visibility to
-- other users.
[userDelay] :: User -> Maybe Delay
-- | Creation date of the user, in Unix Time.
[userCreated] :: User -> Created
-- | The user's karma
[userKarma] :: User -> Karma
-- | The user's optional self-description. HTML.
[userAbout] :: User -> Maybe About
-- | List of the user's stories, polls and comments.
[userSubmitted] :: User -> Maybe Submitted
-- | The item and profile changes are at
-- https://hacker-news.firebaseio.com/v0/updates
data Updates
Updates :: [ItemId] -> [UserName] -> Updates
-- | Updated Items
[items] :: Updates -> [ItemId]
-- | Updated UserNames
[profiles] :: Updates -> [UserName]
-- | The current largest item id is at
-- https://hacker-news.firebaseio.com/v0/maxitem. You can walk
-- backward from here to discover all items.
newtype MaxItem
MaxItem :: ItemId -> MaxItem
-- | https://hacker-news.firebaseio.com/v0/topstories
newtype TopStories
TopStories :: [ItemId] -> TopStories
-- | https://hacker-news.firebaseio.com/v0/newstories
newtype NewStories
NewStories :: [ItemId] -> NewStories
-- | https://hacker-news.firebaseio.com/v0/beststories
newtype BestStories
BestStories :: [ItemId] -> BestStories
-- | https://hacker-news.firebaseio.com/v0/askstories
newtype AskStories
AskStories :: [ItemId] -> AskStories
-- | https://hacker-news.firebaseio.com/v0/showstories
newtype ShowStories
ShowStories :: [ItemId] -> ShowStories
-- | https://hacker-news.firebaseio.com/v0/jobstories
newtype JobStories
JobStories :: [ItemId] -> JobStories
-- | The user's unique username. Case-sensitive. Required.
newtype UserId
UserId :: Text -> UserId
-- | The item's unique id.
newtype ItemId
ItemId :: Int -> ItemId
-- | true if the item is deleted.
newtype Deleted
Deleted :: Bool -> Deleted
-- | The type of item. One of "job", "story", "comment", "poll", or
-- "pollopt"
data ItemType
Job :: ItemType
Story :: ItemType
Comment :: ItemType
Poll :: ItemType
PollOpt :: ItemType
-- | The username of the item's author.
newtype UserName
UserName :: Text -> UserName
-- | Creation date of the item, in Unix Time.
newtype Time
Time :: Integer -> Time
-- | The comment, story or poll text. HTML.
newtype ItemText
ItemText :: Text -> ItemText
-- | true if the item is dead.
newtype Dead
Dead :: Bool -> Dead
-- | The item's parent. For comments, either another comment or the
-- relevant story. For pollopts, the relevant poll.
newtype Parent
Parent :: ItemId -> Parent
-- | The ids of the item's comments, in ranked display order.
newtype Kids
Kids :: [ItemId] -> Kids
-- | The URL of the story.
newtype URL
URL :: Text -> URL
-- | The story's score, or the votes for a pollopt.
newtype Score
Score :: Int -> Score
-- | The title of the story, poll or job.
newtype Title
Title :: Text -> Title
-- | A list of related pollopts, in display order.
newtype Parts
Parts :: [ItemId] -> Parts
-- | In the case of stories or polls, the total comment count.
newtype Descendants
Descendants :: Int -> Descendants
-- | Delay in minutes between a comment's creation and its visibility to
-- other users.
newtype Delay
Delay :: Int -> Delay
-- | Creation date of the user, in Unix Time.
newtype Created
Created :: Int -> Created
-- | The user's karma.
newtype Karma
Karma :: Int -> Karma
-- | The user's optional self-description. HTML.
newtype About
About :: Text -> About
-- | List of the user's stories, polls and comments.
newtype Submitted
Submitted :: [ItemId] -> Submitted
-- | Error handling for HackerNewsAPI
data HackerNewsError
NotFound :: HackerNewsError
FailureResponseError :: Int -> Text -> Text -> HackerNewsError
HNConnectionError :: Text -> HackerNewsError
DecodeFailureError :: Text -> Text -> HackerNewsError
InvalidContentTypeHeaderError :: Text -> Text -> HackerNewsError
UnsupportedContentTypeError :: Text -> HackerNewsError
instance (Web.Internal.HttpApiData.ToHttpApiData a, Servant.Client.HasClient api) => Servant.Client.HasClient (Web.HackerNews.HackerCapture a Servant.API.Sub.:> api)