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 ...@@ -16,23 +16,25 @@ import qualified Data.Text as T
runParser :: Show res => (Cursor -> res) -> LBS.ByteString -> res runParser :: Show res => (Cursor -> res) -> LBS.ByteString -> res
runParser parser = parser . fromDocument . parseLBS_ def runParser parser = parser . fromDocument . parseLBS_ def
runSimpleFindPubmedAbstractRequest :: T.Text -> IO () runSimpleFindPubmedAbstractRequest :: T.Text -> IO [PubMed]
runSimpleFindPubmedAbstractRequest rq = do runSimpleFindPubmedAbstractRequest rq = do
manager' <- newManager tlsManagerSettings manager' <- newManager tlsManagerSettings
res <- runClientM res <- runClientM
(search (Just rq)) (search (Just rq))
(mkClientEnv manager' $ BaseUrl Https "eutils.ncbi.nlm.nih.gov" 443 "entrez/eutils") (mkClientEnv manager' $ BaseUrl Https "eutils.ncbi.nlm.nih.gov" 443 "entrez/eutils")
case res of case res of
(Left err) -> print err (Left err) -> return []
(Right (BsXml docs)) -> do (Right (BsXml docs)) -> do
let docIds = runParser parseDocId docs let docIds = runParser parseDocId docs
res' <- runClientM res' <- runClientM
(fetch (Just "pubmed") (Just "abstract") docIds) (fetch (Just "pubmed") (Just "abstract") docIds)
(mkClientEnv manager' $ BaseUrl Https "eutils.ncbi.nlm.nih.gov" 443 "entrez/eutils") (mkClientEnv manager' $ BaseUrl Https "eutils.ncbi.nlm.nih.gov" 443 "entrez/eutils")
case res' of case res' of
(Left err) -> print err (Left err) -> return []
(Right (BsXml abstracts)) -> (Right (BsXml abstracts)) ->
print =<< pubMedParser abstracts pubMedParser abstracts
main :: IO () 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