Commit ee32691f authored by Alexandre Delanoë's avatar Alexandre Delanoë

[API|Query] WIP need to fit query with frontend

parent 2b13b734
Pipeline #823 failed with stage
...@@ -36,15 +36,9 @@ instance Arbitrary a => Arbitrary (JobOutput a) where ...@@ -36,15 +36,9 @@ instance Arbitrary a => Arbitrary (JobOutput a) where
-- | Main Types -- | Main Types
data ExternalAPIs = All data ExternalAPIs = All
| PubMed | PubMed
| HAL
| HAL_EN | IsTex
| HAL_FR | Isidore
| IsTex_EN
| IsTex_FR
| Isidore_EN
| Isidore_FR
-- | IsidoreAuth -- | IsidoreAuth
deriving (Show, Eq, Enum, Bounded, Generic) deriving (Show, Eq, Enum, Bounded, Generic)
......
...@@ -38,10 +38,9 @@ import Gargantext.API.Corpus.New.File ...@@ -38,10 +38,9 @@ import Gargantext.API.Corpus.New.File
import Gargantext.Core (Lang(..)) import Gargantext.Core (Lang(..))
import Gargantext.Core.Types.Individu (UserId, User(..)) import Gargantext.Core.Types.Individu (UserId, User(..))
import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger) import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger)
import Gargantext.Database.Action.Flow (FlowCmdM, flowCorpus, flowCorpusSearchInDatabase) import Gargantext.Database.Action.Flow (FlowCmdM, flowCorpus, getDataText, flowDataText, TermType(..), DataOrigin(..))
import Gargantext.Database.Admin.Types.Node (CorpusId, ToHyperdataDocument(..)) import Gargantext.Database.Admin.Types.Node (CorpusId, ToHyperdataDocument(..))
import Gargantext.Prelude import Gargantext.Prelude
import Gargantext.Text.Terms (TermType(..))
import Servant import Servant
import Servant.API.Flatten (Flat) import Servant.API.Flatten (Flat)
import Servant.Job.Core import Servant.Job.Core
...@@ -65,8 +64,9 @@ deriveJSON (unPrefix "query_") 'Query ...@@ -65,8 +64,9 @@ deriveJSON (unPrefix "query_") 'Query
instance Arbitrary Query where instance Arbitrary Query where
arbitrary = elements [ Query q n fs arbitrary = elements [ Query q n fs
| q <- ["honeybee* AND collopase" | q <- ["honeybee* AND collapse"
,"covid 19"] ,"covid 19"
]
, n <- [0..10] , n <- [0..10]
, fs <- take 3 $ repeat API.externalAPIs , fs <- take 3 $ repeat API.externalAPIs
] ]
...@@ -119,8 +119,8 @@ info _u = pure $ ApiInfo API.externalAPIs ...@@ -119,8 +119,8 @@ info _u = pure $ ApiInfo API.externalAPIs
------------------------------------------------------------------------ ------------------------------------------------------------------------
data WithQuery = WithQuery data WithQuery = WithQuery
{ _wq_query :: !Text { _wq_query :: !Text
, _wq_databases :: ![ExternalAPIs] , _wq_databases :: ![DataOrigin]
, _wq_lang :: !(Maybe Lang) , _wq_lang :: !(Maybe (TermType Lang))
} }
deriving Generic deriving Generic
...@@ -192,7 +192,7 @@ addToCorpusWithQuery :: FlowCmdM env err m ...@@ -192,7 +192,7 @@ addToCorpusWithQuery :: FlowCmdM env err m
-> WithQuery -> WithQuery
-> (ScraperStatus -> m ()) -> (ScraperStatus -> m ())
-> m ScraperStatus -> m ScraperStatus
addToCorpusWithQuery u cid (WithQuery q _dbs l) logStatus = do addToCorpusWithQuery u cid (WithQuery q dbs l) logStatus = do
-- TODO ... -- TODO ...
logStatus ScraperStatus { _scst_succeeded = Just 10 logStatus ScraperStatus { _scst_succeeded = Just 10
, _scst_failed = Just 2 , _scst_failed = Just 2
...@@ -204,7 +204,8 @@ addToCorpusWithQuery u cid (WithQuery q _dbs l) logStatus = do ...@@ -204,7 +204,8 @@ addToCorpusWithQuery u cid (WithQuery q _dbs l) logStatus = do
-- TODO if cid is folder -> create Corpus -- TODO if cid is folder -> create Corpus
-- if cid is corpus -> add to corpus -- if cid is corpus -> add to corpus
-- if cid is root -> create corpus in Private -- if cid is root -> create corpus in Private
cids <- flowCorpusSearchInDatabase u (maybe EN identity l) q txts <- mapM (\db -> getDataText db (fromMaybe (Multi EN) l) q (Just 10000)) dbs
cids <- mapM (\txt -> flowDataText u txt (fromMaybe (Multi EN) l) cid) txts
printDebug "corpus id" cids printDebug "corpus id" cids
-- TODO ... -- TODO ...
pure ScraperStatus { _scst_succeeded = Just 137 pure ScraperStatus { _scst_succeeded = Just 137
......
This diff is collapsed.
...@@ -34,20 +34,17 @@ import qualified Gargantext.Text.Corpus.API.Istex as ISTEX ...@@ -34,20 +34,17 @@ import qualified Gargantext.Text.Corpus.API.Istex as ISTEX
import qualified Gargantext.Text.Corpus.API.Pubmed as PUBMED import qualified Gargantext.Text.Corpus.API.Pubmed as PUBMED
-- | Get External API metadata main function -- | Get External API metadata main function
get :: ExternalAPIs -> Query -> Maybe Limit -> IO [HyperdataDocument] get :: ExternalAPIs
-> Lang
-> Query
-> Maybe Limit
-> IO [HyperdataDocument]
get PubMed _la q l = PUBMED.get q l -- EN only by default
get HAL la q l = HAL.get la q l
get IsTex la q l = ISTEX.get la q l
get Isidore la q l = ISIDORE.get la (fromIntegral <$> l) (Just q) Nothing
get _ _ _ _ = undefined
get PubMed q l = PUBMED.get q l
get HAL_EN q l = HAL.get EN q l
get HAL_FR q l = HAL.get FR q l
get IsTex_EN q l = ISTEX.get EN q l
get IsTex_FR q l = ISTEX.get FR q l
get Isidore_EN q l = ISIDORE.get EN (fromIntegral <$> l) (Just q) Nothing
get Isidore_FR q l = ISIDORE.get FR (fromIntegral <$> l) (Just q) Nothing
get _ _ _ = undefined
-- | Some Sugar for the documentation -- | Some Sugar for the documentation
type Query = PUBMED.Query type Query = PUBMED.Query
type Limit = PUBMED.Limit type Limit = PUBMED.Limit
......
...@@ -30,41 +30,45 @@ compute graph ...@@ -30,41 +30,45 @@ compute graph
{-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TemplateHaskell #-}
module Gargantext.Text.Terms module Gargantext.Text.Terms
where where
import Control.Lens import Control.Lens
import Data.Aeson.TH (deriveJSON)
import Data.Swagger
import Data.Text (Text) import Data.Text (Text)
import Data.Traversable import Data.Traversable
import GHC.Base (String) import GHC.Base (String)
import GHC.Generics (Generic)
import Gargantext.Prelude import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger)
import Gargantext.Core import Gargantext.Core
import Gargantext.Core.Types import Gargantext.Core.Types
import Gargantext.Text.Terms.Multi (multiterms) import Gargantext.Prelude
import Gargantext.Text (sentences)
import Gargantext.Text.Terms.Eleve (mainEleveWith, Tries, Token, buildTries, toToken)
import Gargantext.Text.Terms.Mono (monoTerms) import Gargantext.Text.Terms.Mono (monoTerms)
import Gargantext.Text.Terms.Mono.Stem (stem) import Gargantext.Text.Terms.Mono.Stem (stem)
import Gargantext.Text.Terms.Mono.Token.En (tokenize)
import qualified Data.Set as Set import Gargantext.Text.Terms.Multi (multiterms)
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Set as Set
import qualified Data.Text as Text import qualified Data.Text as Text
import Gargantext.Text (sentences)
import Gargantext.Text.Terms.Mono.Token.En (tokenize)
import Gargantext.Text.Terms.Eleve (mainEleveWith, Tries, Token, buildTries, toToken)
data TermType lang data TermType lang
= Mono { _tt_lang :: lang } = Mono { _tt_lang :: lang }
| Multi { _tt_lang :: lang } | Multi { _tt_lang :: lang }
| MonoMulti { _tt_lang :: lang } | MonoMulti { _tt_lang :: lang }
| Unsupervised { _tt_lang :: lang | Unsupervised { _tt_lang :: lang
, _tt_windoSize :: Int , _tt_windowSize :: Int
, _tt_ngramsSize :: Int , _tt_ngramsSize :: Int
, _tt_model :: Maybe (Tries Token ()) , _tt_model :: Maybe (Tries Token ())
} }
makeLenses ''TermType deriving Generic
makeLenses ''TermType
--group :: [Text] -> [Text] --group :: [Text] -> [Text]
--group = undefined --group = undefined
......
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