Commit ace45a17 authored by Mael NICOLAS's avatar Mael NICOLAS

IO () ~> IO [PubMed]

parent 1ffff0cb
......@@ -16,23 +16,25 @@ import qualified Data.Text as T
runParser :: Show res => (Cursor -> res) -> LBS.ByteString -> res
runParser parser = parser . fromDocument . parseLBS_ def
runSimpleFindPubmedAbstractRequest :: T.Text -> IO ()
runSimpleFindPubmedAbstractRequest :: T.Text -> IO [PubMed]
runSimpleFindPubmedAbstractRequest rq = do
manager' <- newManager tlsManagerSettings
res <- runClientM
(search (Just rq))
(mkClientEnv manager' $ BaseUrl Https "eutils.ncbi.nlm.nih.gov" 443 "entrez/eutils")
case res of
(Left err) -> print err
(Left err) -> return []
(Right (BsXml docs)) -> do
let docIds = runParser parseDocId docs
res' <- runClientM
(fetch (Just "pubmed") (Just "abstract") docIds)
(mkClientEnv manager' $ BaseUrl Https "eutils.ncbi.nlm.nih.gov" 443 "entrez/eutils")
case res' of
(Left err) -> print err
(Left err) -> return []
(Right (BsXml abstracts)) ->
print =<< pubMedParser abstracts
pubMedParser abstracts
main :: IO ()
main = runSimpleFindPubmedAbstractRequest "organ"
main = do
pubmeds <- runSimpleFindPubmedAbstractRequest "organ"
print pubmeds
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment