module Web.Pocket.Add
( AddRequest (..)
, makeAddRequest
, AddResponse (..)
)
where
import Data.Aeson
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 {..}