{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} ---------------------------------------------------------------------- -- | -- Module: Web.Pocket.Add -- Description: -- -- -- ---------------------------------------------------------------------- module Web.Pocket.Add ( AddRequest (..) , makeAddRequest , AddResponse (..) ) where -- aeson import Data.Aeson -- text import Data.Text (Text) -- | -- -- data AddRequest = AddRequest { addReqConsumerKey :: Text , addReqAccessToken :: Text , addReqUrl :: Text , addReqTitle :: Maybe Text , addReqTags :: Maybe Text , addReqTweetId :: Maybe Text } -- | -- -- makeAddRequest :: Text -> Text -> Text -> AddRequest makeAddRequest addReqConsumerKey addReqAccessToken addReqUrl = AddRequest { addReqTitle = Nothing , addReqTags = Nothing , addReqTweetId = Nothing , .. } -- | -- -- instance ToJSON AddRequest where toJSON AddRequest {..} = object [ "url" .= addReqUrl , "consumer_key" .= addReqConsumerKey , "access_token" .= addReqAccessToken ] -- | -- -- data AddResponse = AddResponse { addRespItem :: Object , addRespStatus :: Integer } -- | -- -- instance FromJSON AddResponse where parseJSON = withObject "" $ \o -> do addRespItem <- o .: "item" addRespStatus <- o .: "status" return AddResponse {..}