]> Git — Sourcephile - gargantext.git/blob - src/Gargantext/Text/Corpus/API.hs
update shell.nix nixpkgs
[gargantext.git] / src / Gargantext / Text / Corpus / API.hs
1 {-|
2 Module : Gargantext.Text.Corpus.API
3 Description : All crawlers of Gargantext in one file.
4 Copyright : (c) CNRS, 2017
5 License : AGPL + CECILL v3
6 Maintainer : team@gargantext.org
7 Stability : experimental
8 Portability : POSIX
9
10 -}
11
12 {-# LANGUAGE NoImplicitPrelude #-}
13 {-# LANGUAGE OverloadedStrings #-}
14 {-# LANGUAGE DeriveGeneric #-}
15 {-# LANGUAGE InstanceSigs #-}
16
17 module Gargantext.Text.Corpus.API
18 ( ExternalAPIs(..)
19 , Query
20 , Limit
21 , get
22 , externalAPIs
23 )
24 where
25
26 import Data.Maybe
27 import Gargantext.Prelude
28 import Gargantext.Core (Lang(..))
29 import Gargantext.API.Orchestrator.Types (ExternalAPIs(..), externalAPIs)
30 import Gargantext.Database.Types.Node (HyperdataDocument(..))
31
32 import qualified Gargantext.Text.Corpus.API.Pubmed as PUBMED
33 import qualified Gargantext.Text.Corpus.API.Isidore as ISIDORE
34 import qualified Gargantext.Text.Corpus.API.Hal as HAL
35 import qualified Gargantext.Text.Corpus.API.Istex as ISTEX
36
37 -- | Get External API metadata main function
38 get :: ExternalAPIs -> Query -> Maybe Limit -> IO [HyperdataDocument]
39
40 get PubMed q l = PUBMED.get q l
41
42 get HAL_EN q l = HAL.get EN q l
43 get HAL_FR q l = HAL.get FR q l
44
45 get IsTex_EN q l = ISTEX.get EN q l
46 get IsTex_FR q l = ISTEX.get FR q l
47
48 get Isidore_EN q l = ISIDORE.get EN (fromIntegral <$> l) (Just q) Nothing
49 get Isidore_FR q l = ISIDORE.get FR (fromIntegral <$> l) (Just q) Nothing
50
51 get _ _ _ = undefined
52 -- | Some Sugar for the documentation
53 type Query = PUBMED.Query
54 type Limit = PUBMED.Limit
55