diff --git a/bin/gargantext-cli/Main.hs b/bin/gargantext-cli/Main.hs index 616070341cdee8d05579b51a3c4cef8ffc47633f..0571e13b8cb10e3b7360f53f77d1c654500af030 100644 --- a/bin/gargantext-cli/Main.hs +++ b/bin/gargantext-cli/Main.hs @@ -11,15 +11,12 @@ Main specifications to index a corpus with a term list -} -{-# LANGUAGE StandaloneDeriving #-} -{-# LANGUAGE TypeOperators #-} {-# LANGUAGE Strict #-} module Main where import Control.Concurrent.Async as CCA (mapConcurrently) -import Control.Monad.IO.Class -import Data.Aeson +import Data.Aeson ( ToJSON, encode ) import Data.List.Split (chunksOf) import Data.Map.Strict qualified as DM import Data.Text (pack) @@ -28,14 +25,12 @@ import Data.Text.Lazy qualified as DTL import Data.Text.Lazy.Encoding qualified as TLE import Data.Tuple.Extra (both) import Data.Vector qualified as DV -import GHC.Generics -import Gargantext.Core.Text.Context +import Gargantext.Core.Text.Context (TermList) import Gargantext.Core.Text.Corpus.Parsers.CSV (readCSVFile, csv_title, csv_abstract, csv_publication_year, fromMIntOrDec, defaultYear) import Gargantext.Core.Text.List.Formats.CSV (csvMapTermList) import Gargantext.Core.Text.Metrics.Count (coocOnContexts, Coocs) -import Gargantext.Core.Text.Terms.WithList -import Gargantext.Prelude hiding (show) -import Protolude +import Gargantext.Core.Text.Terms.WithList ( Patterns, buildPatterns, extractTermsWithList ) +import Gargantext.Prelude import System.IO (hFlush) ------------------------------------------------------------------------ diff --git a/cabal.project b/cabal.project index 18c5a02d1dc10deccaad0bbb0637f14978370d77..2cc3d44aebbe9f8a176bd0f576044ff463f25e83 100644 --- a/cabal.project +++ b/cabal.project @@ -131,7 +131,8 @@ source-repository-package source-repository-package type: git location: https://gitlab.iscpif.fr/gargantext/haskell-gargantext-prelude - tag: 618f711a530df56caefbb1577c4bf3d5ff45e214 + -- tag: 618f711a530df56caefbb1577c4bf3d5ff45e214 + tag: d4f9bee483d41bbdf8ab4e09efb5a5a8216edff4 source-repository-package type: git diff --git a/src/Gargantext/API/Admin/Auth/Types.hs b/src/Gargantext/API/Admin/Auth/Types.hs index 9fb4bae2239e6020fdcef970c42d78d9d4ce71b1..936bffbc2571a187c9a20ff8bcc4f3d967ac5f50 100644 --- a/src/Gargantext/API/Admin/Auth/Types.hs +++ b/src/Gargantext/API/Admin/Auth/Types.hs @@ -13,11 +13,9 @@ Portability : POSIX module Gargantext.API.Admin.Auth.Types where -import Control.Lens hiding (elements, to) -import Data.Aeson.TH (deriveJSON) import qualified Data.Aeson.TH as JSON import Data.List (tail) -import Data.Swagger +import Data.Swagger ( ToSchema(..), genericDeclareNamedSchema ) import Gargantext.Core.Types.Individu (Username, GargPassword(..), arbitraryUsername, arbitraryPassword) import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger) import Gargantext.Database.Admin.Types.Node (NodeId(..), ListId, DocId, UserId (..)) diff --git a/src/Gargantext/API/Count.hs b/src/Gargantext/API/Count.hs index 593ccc1f9a4fa305d7461e38ca8157d45400670f..2c19acc4d2347c047e1c65395d520085490d497d 100644 --- a/src/Gargantext/API/Count.hs +++ b/src/Gargantext/API/Count.hs @@ -19,16 +19,13 @@ Count API part of Gargantext. module Gargantext.API.Count where -import Data.Aeson hiding (Error) -import Data.Aeson.TH (deriveJSON) -import Data.Either -import Data.Swagger +import Data.Swagger ( ToSchema(..), genericDeclareNamedSchema ) import Data.Text (pack) import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger) import Gargantext.Prelude -import Servant +import Servant (JSON, Post) import Test.QuickCheck (elements) -import Test.QuickCheck.Arbitrary +import Test.QuickCheck.Arbitrary (Arbitrary(..)) ----------------------------------------------------------------------- -- TODO-ACCESS: CanCount diff --git a/src/Gargantext/API/Errors/Types.hs b/src/Gargantext/API/Errors/Types.hs index 26e10872ebfe99c40a7ecbd535395a05be97cb65..ab97e4165967494c8bd5c72a9bb3f9d9f09e3073 100644 --- a/src/Gargantext/API/Errors/Types.hs +++ b/src/Gargantext/API/Errors/Types.hs @@ -1,5 +1,15 @@ +{-| +Module : Gargantext.API.Errors.Types +Description : +Copyright : (c) CNRS, 2017-Present +License : AGPL + CECILL v3 +Maintainer : team@gargantext.org +Stability : experimental +Portability : POSIX +-} + + {-# LANGUAGE ConstraintKinds #-} -{-# LANGUAGE KindSignatures #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE RecordWildCards #-} @@ -8,7 +18,6 @@ {-# LANGUAGE StandaloneKindSignatures #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} -{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeFamilyDependencies #-} {-# OPTIONS_GHC -Wno-unused-top-binds #-} {-# OPTIONS_GHC -Wno-orphans #-} -- instance IsFrontendErrorData and stage restriction @@ -36,32 +45,28 @@ module Gargantext.API.Errors.Types ( , genFrontendErr ) where -import Control.Exception import Control.Lens (makePrisms) import Control.Monad.Fail (fail) -import Data.Aeson (FromJSON(..), ToJSON(..), Value(..), (.:), (.=), object, withObject, toJSON) +import Data.Aeson (Value(..), (.:), (.=), object, withObject) import Data.Aeson.Types (typeMismatch, emptyArray) import Data.List.NonEmpty qualified as NE -import Data.Singletons.TH +import Data.Singletons.TH ( SingI(sing), SingKind(fromSing) ) import Data.Text qualified as T -import Data.Typeable import Data.Validity (Validation(..), ValidationChain (..), prettyValidation) -import GHC.Generics -import GHC.Stack import Gargantext.API.Admin.Auth.Types (AuthenticationError) -import Gargantext.API.Errors.Class -import Gargantext.API.Errors.TH +import Gargantext.API.Errors.Class (HasAuthenticationError(..)) +import Gargantext.API.Errors.TH ( deriveIsFrontendErrorData ) import Gargantext.API.Errors.Types.Backend import Gargantext.Core.Types (HasValidationError(..)) -import Gargantext.Core.Types.Individu +import Gargantext.Core.Types.Individu (Username) import Gargantext.Database.Admin.Types.Node -import Gargantext.Database.Query.Table.Node.Error -import Gargantext.Database.Query.Tree.Error +import Gargantext.Database.Query.Table.Node.Error (HasNodeError(..), NodeError) +import Gargantext.Database.Query.Tree.Error (HasTreeError(..), TreeError) import Gargantext.Prelude hiding (Location, WithStacktrace) -import Gargantext.Utils.Dict +import Gargantext.Utils.Dict (Dict(..)) import Gargantext.Utils.Jobs.Monad qualified as Jobs import Servant (ServerError) -import Servant.Job.Core +import Servant.Job.Core ( HasServerError(..) ) import Servant.Job.Types qualified as SJ import Test.QuickCheck import Test.QuickCheck.Instances.Text () diff --git a/src/Gargantext/API/GraphQL/Utils.hs b/src/Gargantext/API/GraphQL/Utils.hs index f2f3661136d7063a355b77a107e931641478f28a..445c40514c9c93906b5c7f6d6227b0377c6c54a7 100644 --- a/src/Gargantext/API/GraphQL/Utils.hs +++ b/src/Gargantext/API/GraphQL/Utils.hs @@ -12,8 +12,7 @@ Portability : POSIX module Gargantext.API.GraphQL.Utils where -import Control.Lens ((^.)) -import Control.Lens.Getter (view) +import Control.Lens (view) import Data.Morpheus.Types (GQLTypeOptions, fieldLabelModifier) import Data.Text qualified as T import Gargantext.API.Admin.Auth.Types (AuthenticatedUser (..), auth_node_id) diff --git a/src/Gargantext/API/Ngrams.hs b/src/Gargantext/API/Ngrams.hs index cb36c86742c1411d398de07ad1b8f29c3bfc6212..e59e7d494bc8967191226e02fbc394addb91ee9d 100644 --- a/src/Gargantext/API/Ngrams.hs +++ b/src/Gargantext/API/Ngrams.hs @@ -86,7 +86,7 @@ module Gargantext.API.Ngrams ) where -import Control.Lens ((.~), view, (^.), (^..), (+~), (%~), (.~), msumOf, at, ix, _Just, Each(..), (%%~), ifolded, to, withIndex, over) +import Control.Lens (view, (^..), (+~), (%~), msumOf, at, ix, _Just, Each(..), (%%~), ifolded, to, withIndex, over) import Data.Aeson.Text qualified as DAT import Data.List qualified as List import Data.Map.Strict qualified as Map diff --git a/src/Gargantext/API/Ngrams/NgramsTree.hs b/src/Gargantext/API/Ngrams/NgramsTree.hs index 95eb9d2bb670867d1d5a22d96c60f9f578e10435..a74b349aa85de52569e2356009402ffe86a56f43 100644 --- a/src/Gargantext/API/Ngrams/NgramsTree.hs +++ b/src/Gargantext/API/Ngrams/NgramsTree.hs @@ -14,18 +14,18 @@ Portability : POSIX module Gargantext.API.Ngrams.NgramsTree where -import Data.Aeson.TH (deriveJSON) import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict qualified as HashMap import Data.List qualified as List import Data.Set qualified as Set -import Data.Swagger -import Data.Tree +import Data.Swagger ( ToSchema(..), genericDeclareNamedSchema ) +import Data.Tree ( Tree(Node), unfoldForest ) import Gargantext.API.Ngrams.Types -import Gargantext.Core.Types (ListType(..), NodeId) +import Gargantext.Core.Types.Main ( ListType(..) ) +import Gargantext.Database.Admin.Types.Node ( NodeId ) import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger) import Gargantext.Prelude -import Test.QuickCheck +import Test.QuickCheck ( Arbitrary(arbitrary) ) type Children = Text type Root = Text diff --git a/src/Gargantext/API/Ngrams/Tools.hs b/src/Gargantext/API/Ngrams/Tools.hs index e8abefa0452fa71c0948e0b9632906dd258b0653..cd4a369f012ef06d5fdb61056e24e9da34bd2532 100644 --- a/src/Gargantext/API/Ngrams/Tools.hs +++ b/src/Gargantext/API/Ngrams/Tools.hs @@ -17,7 +17,7 @@ module Gargantext.API.Ngrams.Tools where -- import Gargantext.Core.NodeStoryFile qualified as NSF -import Control.Lens (_Just, (^.), at, ix, view, At, Index, IxValue) +import Control.Lens (_Just, at, ix, view, At, Index, IxValue) import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict qualified as HM import Data.Map.Strict qualified as Map diff --git a/src/Gargantext/API/Ngrams/Types.hs b/src/Gargantext/API/Ngrams/Types.hs index 1c77331ef5dbb04391b0cd01b6bb883445397f45..ccb86efde45aa0aba7ca319f7dd3ddb233acad18 100644 --- a/src/Gargantext/API/Ngrams/Types.hs +++ b/src/Gargantext/API/Ngrams/Types.hs @@ -19,9 +19,8 @@ module Gargantext.API.Ngrams.Types where import Codec.Serialise (Serialise()) import Control.Category ((>>>)) -import Control.Lens (makeLenses, makePrisms, Iso', iso, from, (.~), (.=), (?=), (#), to, folded, {-withIndex, ifolded,-} view, use, (^.), (^?), (%~), (.~), (%=), at, _Just, Each(..), itraverse_, both, forOf_, (?~), over) +import Control.Lens (makePrisms, Iso', iso, from, (.=), (?=), (#), to, folded, {-withIndex, ifolded,-} view, use, (^?), (%~), (%=), at, _Just, Each(..), itraverse_, both, forOf_, (?~), over) import Data.Aeson hiding ((.=)) -import Data.Aeson.TH (deriveJSON) import Data.Csv (defaultEncodeOptions, encodeByNameWith, header, namedRecord, EncodeOptions(..), NamedRecord, Quoting(QuoteNone)) import Data.Csv qualified as Csv import Data.HashMap.Strict.InsOrd qualified as InsOrdHashMap diff --git a/src/Gargantext/API/Node.hs b/src/Gargantext/API/Node.hs index caf6d7b79a35e758ce53058d7e211e51619cf4cc..1873ef4fd5029c1b986a8953d7483b17cfdcc629 100644 --- a/src/Gargantext/API/Node.hs +++ b/src/Gargantext/API/Node.hs @@ -28,27 +28,25 @@ Node API module Gargantext.API.Node where -import Control.Lens ((^.)) -import Data.Aeson (FromJSON, ToJSON) -import Data.Aeson.TH (deriveJSON) -import Data.Swagger +import Data.Swagger (ToSchema) import Gargantext.API.Admin.Auth (withAccess, withPolicy) import Gargantext.API.Admin.Auth.Types (PathId(..), AuthenticatedUser (..), auth_node_id) -import Gargantext.API.Admin.EnvTypes -import Gargantext.API.Auth.PolicyCheck -import Gargantext.API.Errors.Types +import Gargantext.API.Admin.EnvTypes (Env) +import Gargantext.API.Auth.PolicyCheck ( PolicyChecked, nodeChecks ) +import Gargantext.API.Errors.Types (BackendInternalError) import Gargantext.API.Metrics import Gargantext.API.Ngrams (TableNgramsApi, apiNgramsTableCorpus) import Gargantext.API.Ngrams.Types (TabType(..)) import Gargantext.API.Node.DocumentUpload qualified as DocumentUpload -import Gargantext.API.Node.File +import Gargantext.API.Node.DocumentsFromWriteNodes qualified as DFWN +import Gargantext.API.Node.File ( FileAsyncApi, FileApi, fileApi, fileAsyncApi ) import Gargantext.API.Node.FrameCalcUpload qualified as FrameCalcUpload -import Gargantext.API.Node.New +import Gargantext.API.Node.New ( PostNodeAsync, PostNode, postNode, postNodeAsyncAPI ) import Gargantext.API.Node.Share qualified as Share import Gargantext.API.Node.Update qualified as Update -import Gargantext.API.Prelude +import Gargantext.API.Prelude ( GargM, GargServer ) import Gargantext.API.Search qualified as Search -import Gargantext.API.Table +import Gargantext.API.Table ( TableApi, tableApi, getPair ) import Gargantext.Core.Types (NodeTableResult) import Gargantext.Core.Types.Individu (User(..)) import Gargantext.Core.Types.Main (Tree, NodeTree) @@ -57,10 +55,11 @@ import Gargantext.Core.Utils.Prefix (unPrefix) import Gargantext.Core.Viz.Phylo.API (PhyloAPI, phyloAPI) import Gargantext.Database.Action.Delete qualified as Action (deleteNode) import Gargantext.Database.Action.Flow.Pairing (pairing) -import Gargantext.Database.Admin.Types.Hyperdata +import Gargantext.Database.Admin.Types.Hyperdata.Prelude ( HyperdataC ) +import Gargantext.Database.Admin.Types.Hyperdata.User ( HyperdataUser ) import Gargantext.Database.Admin.Types.Node import Gargantext.Database.Prelude (Cmd, JSONB) -import Gargantext.Database.Query.Facet (FacetDoc, OrderBy(..)) +import Gargantext.Database.Query.Facet.Types ( FacetDoc, OrderBy(..) ) import Gargantext.Database.Query.Table.Node import Gargantext.Database.Query.Table.Node.Children (getChildren) import Gargantext.Database.Query.Table.Node.Error (HasNodeError(..)) @@ -74,7 +73,6 @@ import Gargantext.Prelude import Servant import Test.QuickCheck (elements) import Test.QuickCheck.Arbitrary (Arbitrary, arbitrary) -import qualified Gargantext.API.Node.DocumentsFromWriteNodes as DFWN -- | Admin NodesAPI diff --git a/src/Gargantext/API/Node/Corpus/New.hs b/src/Gargantext/API/Node/Corpus/New.hs index fd2c96e99b0d25973f80b22098a9b78361fa25ce..89b93d54b0aa81e093cac9e5035b6946b9ff3812 100644 --- a/src/Gargantext/API/Node/Corpus/New.hs +++ b/src/Gargantext/API/Node/Corpus/New.hs @@ -21,26 +21,26 @@ module Gargantext.API.Node.Corpus.New import Conduit -import Control.Lens hiding (elements, Empty) -import Data.Aeson -import Data.Aeson.TH (deriveJSON) +import Control.Lens ( view, non ) +import Data.Aeson ( genericParseJSON, genericToJSON ) import Data.ByteString.Base64 qualified as BSB64 import Data.Conduit.Internal (zipSources) -import Data.Swagger +import Data.Swagger ( ToSchema(..), genericDeclareNamedSchema ) import Data.Text qualified as T import Data.Text.Encoding qualified as TE import EPO.API.Client.Types qualified as EPO import Gargantext.API.Admin.Orchestrator.Types (JobLog(..), AsyncJobs) import Gargantext.API.Admin.Types (HasSettings) import Gargantext.API.Ngrams (commitStatePatch, Versioned(..)) -import Gargantext.API.Node.Corpus.New.Types -import Gargantext.API.Node.Corpus.Searx -import Gargantext.API.Node.Corpus.Types +import Gargantext.API.Node.Corpus.New.Types ( FileFormat(..), FileType(..) ) +import Gargantext.API.Node.Corpus.Searx ( triggerSearxSearch ) +import Gargantext.API.Node.Corpus.Types ( Database, Datafield(Web), database2origin ) import Gargantext.API.Node.Corpus.Update (addLanguageToCorpus) import Gargantext.API.Node.Types import Gargantext.Core (Lang(..), withDefaultLanguage, defaultLanguage) import Gargantext.Core.NodeStory (HasNodeStoryImmediateSaver, HasNodeArchiveStoryImmediateSaver, currentVersion, NgramsStatePatch') -import Gargantext.Core.Text.Corpus.API qualified as API +import Gargantext.API.Admin.Orchestrator.Types qualified as API +import Gargantext.Core.Text.Corpus.Query qualified as API import Gargantext.Core.Text.Corpus.Parsers qualified as Parser (FileType(..), parseFormatC) import Gargantext.Core.Text.List.Social (FlowSocialListWith(..)) import Gargantext.Core.Types.Individu (User(..)) @@ -50,7 +50,8 @@ import Gargantext.Database.Action.Flow.Types (FlowCmdM) import Gargantext.Database.Action.Mail (sendMail) import Gargantext.Database.Action.Node (mkNodeWithParent) import Gargantext.Database.Action.User (getUserId) -import Gargantext.Database.Admin.Types.Hyperdata +import Gargantext.Database.Admin.Types.Hyperdata.Document ( ToHyperdataDocument(..) ) +import Gargantext.Database.Admin.Types.Hyperdata.File ( HyperdataFile(..) ) import Gargantext.Database.Admin.Types.Node (CorpusId, NodeType(..), ParentId) import Gargantext.Database.GargDB qualified as GargDB import Gargantext.Database.Prelude (hasConfig) @@ -60,11 +61,11 @@ import Gargantext.Database.Query.Tree.Root (MkCorpusUser(MkCorpusUserNormalCorpu import Gargantext.Database.Schema.Node (node_hyperdata) import Gargantext.Prelude import Gargantext.Prelude.Config (gc_max_docs_parsers) -import Gargantext.System.Logging -import Gargantext.Utils.Jobs (JobHandle, MonadJobStatus(..)) -import Servant +import Gargantext.System.Logging ( logLocM, LogLevel(..) ) +import Gargantext.Utils.Jobs.Monad (JobHandle, MonadJobStatus(..)) +import Servant ( JSON, type (:>), FormUrlEncoded, Capture, Summary ) import Servant.Job.Utils (jsonOptions) -import Test.QuickCheck.Arbitrary +import Test.QuickCheck.Arbitrary (Arbitrary(..)) ------------------------------------------------------------------------ {- diff --git a/src/Gargantext/API/Node/Corpus/New/File.hs b/src/Gargantext/API/Node/Corpus/New/File.hs index d7deddd4f3790abc1c0e110d1fa4c8e82afe0fa2..d0588ab0c36bcfda3e920f0de2ee8cc96800fa5d 100644 --- a/src/Gargantext/API/Node/Corpus/New/File.hs +++ b/src/Gargantext/API/Node/Corpus/New/File.hs @@ -12,24 +12,22 @@ Portability : POSIX {-# OPTIONS_GHC -fno-warn-orphans #-} {-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeOperators #-} module Gargantext.API.Node.Corpus.New.File where -import Control.Lens ((.~), (?~)) -import Data.Maybe +import Control.Lens ((?~)) import Data.Swagger -import Gargantext.API.Node.Corpus.New.Types +import Gargantext.API.Node.Corpus.New.Types (FileFormat, FileType) import Gargantext.Core.Types (TODO) -import Gargantext.Database.Admin.Types.Node +import Gargantext.Database.Admin.Types.Node (NodeId) import Gargantext.Database.Prelude (Cmd) import Gargantext.Prelude hiding (hash) import Gargantext.Prelude.Crypto.Hash (hash) -import Servant -import Servant.Multipart -import Servant.Swagger.Internal +import Servant ( JSON, type (:>), Post, QueryParam, Summary ) +import Servant.Multipart ( Input(iName), Mem, MultipartData(inputs), MultipartForm ) +import Servant.Swagger.Internal ( addParam, HasSwagger(..) ) ------------------------------------------------------------- type Hash = Text diff --git a/src/Gargantext/API/Node/Corpus/Searx.hs b/src/Gargantext/API/Node/Corpus/Searx.hs index 02fc2fa41681a933f46f65a167a1f9d6fa6aa01a..04795b7e23d3ff6919f033c8252f197a1aaa6c09 100644 --- a/src/Gargantext/API/Node/Corpus/Searx.hs +++ b/src/Gargantext/API/Node/Corpus/Searx.hs @@ -15,7 +15,6 @@ module Gargantext.API.Node.Corpus.Searx where import Control.Lens (view) import Data.Aeson qualified as Aeson -import Data.Aeson.TH (deriveJSON) import Data.HashMap.Strict qualified as HashMap import Data.Text qualified as T import Data.Text qualified as Text @@ -25,7 +24,7 @@ import Data.Tuple.Select (sel1, sel2, sel3) import Gargantext.Core (Lang(..)) import Gargantext.Core.NLP (HasNLPServer, nlpServerGet) import Gargantext.Core.NodeStory.Types ( HasNodeStory ) -import Gargantext.Core.Text.Corpus.API qualified as API +import Gargantext.Core.Text.Corpus.Query qualified as Query import Gargantext.Core.Text.List (buildNgramsLists) import Gargantext.Core.Text.List.Group.WithStem ({-StopSize(..),-} GroupParams(..)) import Gargantext.Core.Text.Terms (TermType(..)) @@ -44,10 +43,10 @@ import Gargantext.Database.Query.Table.Node.Error (HasNodeError) import Gargantext.Database.Query.Tree.Error (HasTreeError) import Gargantext.Database.Query.Tree.Root (getOrMkRootWithCorpus, MkCorpusUser (MkCorpusUserMaster)) import Gargantext.Prelude hiding (All) -import Gargantext.Prelude.Config -import Gargantext.Utils.Jobs (JobHandle, MonadJobStatus(..)) +import Gargantext.Prelude.Config (GargConfig(..)) +import Gargantext.Utils.Jobs.Monad (JobHandle, MonadJobStatus(..)) import Network.HTTP.Client -import Network.HTTP.Client.TLS +import Network.HTTP.Client.TLS (tlsManagerSettings) import Prelude qualified langToSearx :: Lang -> Text @@ -167,7 +166,7 @@ triggerSearxSearch :: ( MonadBase IO m , MonadJobStatus m ) => User -> CorpusId - -> API.RawQuery + -> Query.RawQuery -> Lang -> JobHandle m -> m () @@ -195,7 +194,7 @@ triggerSearxSearch user cId q l jobHandle = do res <- liftBase $ fetchSearxPage $ FetchSearxParams { _fsp_language = l , _fsp_manager = manager , _fsp_pageno = page - , _fsp_query = API.getRawQuery q + , _fsp_query = Query.getRawQuery q , _fsp_url = surl } insertSearxResponse user cId listId l res diff --git a/src/Gargantext/API/Node/Corpus/Types.hs b/src/Gargantext/API/Node/Corpus/Types.hs index b4d7ea468f4d5979cd195bc35bdf3b6063d43e30..76aa123037a1df408dcba09720962ace09dad775 100644 --- a/src/Gargantext/API/Node/Corpus/Types.hs +++ b/src/Gargantext/API/Node/Corpus/Types.hs @@ -13,17 +13,16 @@ Portability : POSIX module Gargantext.API.Node.Corpus.Types where -import Control.Lens hiding (elements, Empty) +import Control.Lens ( (?~) ) import Control.Monad.Fail (fail) -import Data.Aeson -import Data.Aeson.TH (deriveJSON) +import Data.Aeson ( Value(..), (.:), withText, object ) import Data.Swagger import Data.Text qualified as T import Gargantext.API.Admin.Orchestrator.Types qualified as Types import Gargantext.Core.Utils.Prefix (unPrefix) -import Gargantext.Database.Action.Flow (DataOrigin(..)) +import Gargantext.Database.Action.Flow.Types (DataOrigin(..)) import Gargantext.Prelude -import Test.QuickCheck +import Test.QuickCheck (Arbitrary(..), oneof, arbitraryBoundedEnum) data Database = Empty | OpenAlex diff --git a/src/Gargantext/API/Node/DocumentUpload.hs b/src/Gargantext/API/Node/DocumentUpload.hs index b14031987c669bf7e893e118a02fc48fccb7643e..8b5a107abee605686aa48fde7d6183ed36a2c68a 100644 --- a/src/Gargantext/API/Node/DocumentUpload.hs +++ b/src/Gargantext/API/Node/DocumentUpload.hs @@ -16,8 +16,8 @@ Portability : POSIX module Gargantext.API.Node.DocumentUpload where -import Control.Lens (makeLenses, view) -import Data.Aeson +import Control.Lens (view) +import Data.Aeson ( Options(..), genericParseJSON, defaultOptions, genericToJSON, SumEncoding(..) ) import Data.Swagger (ToSchema) import Data.Text qualified as T import Gargantext.API.Admin.EnvTypes (GargJob(..), Env) diff --git a/src/Gargantext/API/Node/DocumentsFromWriteNodes.hs b/src/Gargantext/API/Node/DocumentsFromWriteNodes.hs index e4bb56062498f62cd0af387cd607b4d6108e34e4..15ffbe96b1b4e18bd631594ed7bc0ab47458fed3 100644 --- a/src/Gargantext/API/Node/DocumentsFromWriteNodes.hs +++ b/src/Gargantext/API/Node/DocumentsFromWriteNodes.hs @@ -16,8 +16,7 @@ module Gargantext.API.Node.DocumentsFromWriteNodes where import Conduit ( yieldMany ) -import Control.Lens ((^.)) -import Data.Aeson ( genericParseJSON, defaultOptions, genericToJSON, FromJSON(parseJSON), ToJSON(toJSON) ) +import Data.Aeson ( genericParseJSON, defaultOptions, genericToJSON ) import Data.List qualified as List import Data.Swagger ( ToSchema ) import Data.Text qualified as T diff --git a/src/Gargantext/API/Node/File.hs b/src/Gargantext/API/Node/File.hs index f2e219bbf3250fb9b9411af10acc927f6720106c..7d5c0ce2e43830041c37240da9a825c1263945c6 100644 --- a/src/Gargantext/API/Node/File.hs +++ b/src/Gargantext/API/Node/File.hs @@ -17,35 +17,31 @@ Portability : POSIX module Gargantext.API.Node.File where -import Control.Lens ((^.)) import Data.ByteString qualified as BS import Data.ByteString.Lazy qualified as BSL import Data.MIME.Types qualified as DMT -import Data.Swagger +import Data.Swagger (ToSchema(..)) import Data.Text qualified as T -import Data.Text -import Servant -import qualified Gargantext.Database.GargDB as GargDB -import qualified Network.HTTP.Media as M - -import Data.Either -import Gargantext.API.Admin.Auth.Types +import Gargantext.API.Admin.Auth.Types ( AuthenticatedUser, auth_user_id ) import Gargantext.API.Admin.EnvTypes (GargJob(..), Env) import Gargantext.API.Admin.Orchestrator.Types (JobLog(..), AsyncJobs) import Gargantext.API.Admin.Types (HasSettings) -import Gargantext.API.Errors.Types -import Gargantext.API.Node.Types -import Gargantext.API.Prelude +import Gargantext.API.Errors.Types ( BackendInternalError ) +import Gargantext.API.Node.Types ( NewWithFile(NewWithFile) ) +import Gargantext.API.Prelude ( GargM, GargServer ) import Gargantext.Core.Types (TODO) -import Gargantext.Database.Action.Flow.Types +import Gargantext.Database.Action.Flow.Types ( FlowCmdM ) import Gargantext.Database.Action.Node (mkNodeWithParent) -import Gargantext.Database.Admin.Types.Hyperdata.File -import Gargantext.Database.Admin.Types.Node +import Gargantext.Database.Admin.Types.Hyperdata.File ( HyperdataFile(..) ) +import Gargantext.Database.Admin.Types.Node ( NodeId, NodeType(..) ) +import Gargantext.Database.GargDB qualified as GargDB import Gargantext.Database.Query.Table.Node (getNodeWith) import Gargantext.Database.Query.Table.Node.UpdateOpaleye (updateHyperdata) import Gargantext.Database.Schema.Node (node_hyperdata) import Gargantext.Prelude import Gargantext.Utils.Jobs (serveJobsAPI, MonadJobStatus(..)) +import Network.HTTP.Media qualified as M +import Servant data RESPONSE deriving Typeable diff --git a/src/Gargantext/API/Node/FrameCalcUpload.hs b/src/Gargantext/API/Node/FrameCalcUpload.hs index d1d21064b4bcb6fb8e7e88d33777c6fcb62c906c..0f3038f4ab895f8a6f3ce67a2469af3227d6500b 100644 --- a/src/Gargantext/API/Node/FrameCalcUpload.hs +++ b/src/Gargantext/API/Node/FrameCalcUpload.hs @@ -15,8 +15,6 @@ Portability : POSIX module Gargantext.API.Node.FrameCalcUpload where -import Control.Lens ((^.)) -import Data.Aeson ( FromJSON, ToJSON ) import Data.ByteString.Lazy qualified as BSL import Data.ByteString.UTF8 qualified as BSU8 import Data.Swagger ( ToSchema ) diff --git a/src/Gargantext/API/Node/Share.hs b/src/Gargantext/API/Node/Share.hs index 998c7131ee12d9c56928fa22a3107824b4f72064..97df5bb4ef9fe969224b8860e8b93c7df87ea2b1 100644 --- a/src/Gargantext/API/Node/Share.hs +++ b/src/Gargantext/API/Node/Share.hs @@ -63,8 +63,8 @@ api :: (HasNodeError err, HasNLPServer env, CmdRandom env err m) api userInviting nId (ShareTeamParams user') = do let user'' = Text.toLower user' user <- case guessUserName user'' of - Nothing -> pure user'' - Just (u,_) -> do + Nothing -> pure user'' + Just (u, _) -> do isRegistered <- getUserId' (UserName u) case isRegistered of Right _ -> do @@ -72,7 +72,7 @@ api userInviting nId (ShareTeamParams user') = do pure u Left _err -> do username' <- getUsername userInviting - _ <- case List.elem username' arbitraryUsername of + _ <- case username' `List.elem` arbitraryUsername of True -> do -- printDebug "[G.A.N.Share.api]" ("Demo users are not allowed to invite" :: Text) pure () diff --git a/src/Gargantext/API/Public.hs b/src/Gargantext/API/Public.hs index 610e8e9716b3045b27277c81a3201e8f21ddb065..7bd489e0806eb4d0bff02466da9500f7e3ecf285 100644 --- a/src/Gargantext/API/Public.hs +++ b/src/Gargantext/API/Public.hs @@ -15,27 +15,28 @@ Portability : POSIX module Gargantext.API.Public where -import Control.Lens ((^?), (^.), _Just) -import Data.Aeson +import Control.Lens ((^?), _Just) +import Data.Aeson ( Options(sumEncoding), genericParseJSON, defaultOptions, genericToJSON ) import Data.List qualified as List import Data.Map.Strict qualified as Map import Data.Set qualified as Set -import Data.Swagger hiding (title, url) -import Gargantext.API.Node.File -import Gargantext.API.Prelude +import Data.Swagger (ToSchema) +import Gargantext.API.Node.File (FileApi, fileApi) +import Gargantext.API.Prelude (serverError, GargServer) import Gargantext.Core.Utils.DateUtils (utc2year) -import Gargantext.Database.Admin.Types.Hyperdata +import Gargantext.Database.Admin.Types.Hyperdata.Corpus ( hc_fields ) +import Gargantext.Database.Admin.Types.Hyperdata.Folder ( HyperdataFolder ) import Gargantext.Database.Admin.Types.Hyperdata.CorpusField -import Gargantext.Database.Admin.Types.Node +import Gargantext.Database.Admin.Types.Node ( NodeId(..), Node, unNodeId ) import Gargantext.Database.Prelude (Cmd, DBCmd) import Gargantext.Database.Query.Table.Node.Error (HasNodeError(..)) import Gargantext.Database.Query.Table.NodeNode (selectPublicNodes) -import Gargantext.Database.Schema.Node -- (NodePoly(..)) +import Gargantext.Database.Schema.Node ( NodePoly(..), node_date, node_hyperdata ) -- (NodePoly(..)) import Gargantext.Prelude import Gargantext.Utils.Aeson qualified as GUA import Servant import Test.QuickCheck (elements) -import Test.QuickCheck.Arbitrary +import Test.QuickCheck.Arbitrary ( Arbitrary(arbitrary) ) ------------------------------------------------------------------------ type API = API_Home diff --git a/src/Gargantext/API/Server.hs b/src/Gargantext/API/Server.hs index 7a57b7c48b8a6235221ad2720552833687a53f42..ffcc5408732f3ddd6144c5b7f080017c6024b5f7 100644 --- a/src/Gargantext/API/Server.hs +++ b/src/Gargantext/API/Server.hs @@ -13,9 +13,10 @@ Portability : POSIX module Gargantext.API.Server where -import Control.Lens ((^.)) import Control.Monad.Catch (catch, throwM) +import Data.ByteString.Lazy qualified as BL import Data.Text qualified as T +import Data.Text.Encoding qualified as TE import Data.Version (showVersion) import Gargantext.API.Admin.Auth (auth, forgotPassword, forgotPasswordAsync) import Gargantext.API.Admin.Auth.Types (AuthContext) @@ -24,20 +25,18 @@ import Gargantext.API.Admin.FrontEnd (frontEndServer) import Gargantext.API.Auth.PolicyCheck () import Gargantext.API.Errors import Gargantext.API.GraphQL qualified as GraphQL -import Gargantext.API.Prelude +import Gargantext.API.Prelude (GargM, GargServer) import Gargantext.API.Public qualified as Public -import Gargantext.API.Routes +import Gargantext.API.Routes (API, GargVersion, GargAPI) import Gargantext.API.Swagger (swaggerDoc) import Gargantext.API.ThrowAll (serverPrivateGargAPI) import Gargantext.Database.Prelude (hasConfig) import Gargantext.Prelude hiding (Handler, catch) import Gargantext.Prelude.Config (gc_url_backend_api) -import Gargantext.System.Logging +import Gargantext.System.Logging (logLocM, LogLevel(..)) import Paths_gargantext qualified as PG -- cabal magic build module import Servant import Servant.Swagger.UI (swaggerSchemaUIServer) -import qualified Data.ByteString.Lazy as BL -import qualified Data.Text.Encoding as TE serverGargAPI :: Text -> ServerT GargAPI (GargM Env BackendInternalError) diff --git a/src/Gargantext/API/Table.hs b/src/Gargantext/API/Table.hs index 3b0dbb3016237a4403a066c899eb1da21c9e5dcc..6e22dfbcc58ffa0d5f77cdc45342e7209834ebab 100644 --- a/src/Gargantext/API/Table.hs +++ b/src/Gargantext/API/Table.hs @@ -31,9 +31,7 @@ Node API module Gargantext.API.Table where -import Data.Aeson.TH (deriveJSON) -import Data.Maybe -import Data.Swagger +import Data.Swagger (ToSchema(..), genericDeclareNamedSchema) import Data.Text qualified as T import Gargantext.API.HashedResponse import Gargantext.API.Ngrams.Types (TabType(..)) diff --git a/src/Gargantext/Core/NodeStory.hs b/src/Gargantext/Core/NodeStory.hs index 5cf695063a99d17d4e5e749cb1b20863ceb76b7e..44ffe15e6022ffc18b0da50479457af4698142f4 100644 --- a/src/Gargantext/Core/NodeStory.hs +++ b/src/Gargantext/Core/NodeStory.hs @@ -63,7 +63,7 @@ module Gargantext.Core.NodeStory , getParentsChildren ) where -import Control.Lens ((^.), (.~), (%~), non, _Just, at, over, view) +import Control.Lens ((%~), non, _Just, at, over, view) import Data.Map.Strict qualified as Map import Data.Pool (Pool, withResource) import Data.Set qualified as Set diff --git a/src/Gargantext/Core/NodeStory/DB.hs b/src/Gargantext/Core/NodeStory/DB.hs index ba6d1ce3d4c09b63e4ddee0affd9ae92ae4e131d..97b85c626a457a85e0bd7ba0d08d2b29fcc0c5d4 100644 --- a/src/Gargantext/Core/NodeStory/DB.hs +++ b/src/Gargantext/Core/NodeStory/DB.hs @@ -25,7 +25,6 @@ module Gargantext.Core.NodeStory.DB , updateNodeStoryVersion ) where -import Control.Lens ((^.)) import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict qualified as HashMap import Data.Map.Strict qualified as Map @@ -41,7 +40,7 @@ import Gargantext.Database.Admin.Types.Node ( NodeId(..), NodeType ) import Gargantext.Database.Admin.Config () import Gargantext.Database.Schema.Ngrams () import Gargantext.Prelude hiding (to) -import Gargantext.Prelude.Database +import Gargantext.Prelude.Database ( runPGSExecute, runPGSExecuteMany, runPGSQuery, runPGSReturning ) nodeExists :: PGS.Connection -> NodeId -> IO Bool diff --git a/src/Gargantext/Core/NodeStory/Types.hs b/src/Gargantext/Core/NodeStory/Types.hs index e3d1bd1afde01321e81a54f4654cc7ce8711b867..7b2f0c094fbef829ec1ffe110c6944d72c55785b 100644 --- a/src/Gargantext/Core/NodeStory/Types.hs +++ b/src/Gargantext/Core/NodeStory/Types.hs @@ -48,7 +48,7 @@ module Gargantext.Core.NodeStory.Types where import Codec.Serialise.Class ( Serialise ) -import Control.Lens (makeLenses, Getter, (^.)) +import Control.Lens (Getter) import Data.Aeson hiding ((.=), decode) import Data.Map.Strict qualified as Map import Data.Profunctor.Product.TH (makeAdaptorAndInstance) diff --git a/src/Gargantext/Core/Text/Corpus/Parsers/Date.hs b/src/Gargantext/Core/Text/Corpus/Parsers/Date.hs index f99aa69123f657aa3104fd6864383492cf8510ad..2aaa7b4c1b006bfd29adf5d9c64335860b0550cb 100644 --- a/src/Gargantext/Core/Text/Corpus/Parsers/Date.hs +++ b/src/Gargantext/Core/Text/Corpus/Parsers/Date.hs @@ -22,7 +22,7 @@ module Gargantext.Core.Text.Corpus.Parsers.Date {-(parse, parseRaw, dateSplit, Year, Month, Day)-} where -import Data.Aeson (toJSON, Value) +import Data.Aeson (Value) import Data.Aeson qualified as Json import Data.Aeson.KeyMap as KM hiding (map) import Data.HashSet qualified as HashSet @@ -30,16 +30,14 @@ import Data.List qualified as List import Data.Text (unpack, splitOn, replace) import Data.Time (defaultTimeLocale, iso8601DateFormat, parseTimeM, toGregorian) import Data.Time.Calendar qualified as DTC -import Data.Time.Clock ( secondsToDiffTime) -import Data.Time.Clock (UTCTime(..)) -- , getCurrentTime) +import Data.Time.Clock (UTCTime(..), secondsToDiffTime) -- , getCurrentTime) import Data.Time.LocalTime (utc) import Data.Time.LocalTime.TimeZone.Series (zonedTimeToZoneSeriesTime) import Duckling.Api (analyze) import Duckling.Core (makeLocale, Dimension(Time)) import Duckling.Core qualified as DC import Duckling.Resolve (fromUTC, Context(Context, referenceTime, locale), DucklingTime(DucklingTime), Options(..)) -import Duckling.Types (ResolvedToken(..), ResolvedVal(..)) -import Duckling.Types (Seal(..)) +import Duckling.Types (ResolvedToken(..), ResolvedVal(..), Seal(..)) import Gargantext.Core (Lang(FR,EN)) -- import Gargantext.Core.Types (DebugMode(..), withDebugMode) import Gargantext.Prelude hiding (replace) diff --git a/src/Gargantext/Core/Text/Corpus/Parsers/Gitlab.hs b/src/Gargantext/Core/Text/Corpus/Parsers/Gitlab.hs index 065a9004f3498bbf5f1012313d86e970ddd382da..c5c0629e39f5ad64a849f2e50d9259a8f1e1d331 100644 --- a/src/Gargantext/Core/Text/Corpus/Parsers/Gitlab.hs +++ b/src/Gargantext/Core/Text/Corpus/Parsers/Gitlab.hs @@ -13,7 +13,7 @@ module Gargantext.Core.Text.Corpus.Parsers.Gitlab ( Issue(..), gitlabIssue2hyperdataDocument, readFile_Issues, readFile_IssuesAsDocs ) where -import Data.Aeson ( FromJSON(parseJSON), decode, (.:), (.:?), withObject ) +import Data.Aeson ( decode, (.:), (.:?), withObject ) import Data.ByteString.Lazy qualified as DBL import Data.Text qualified as DT import Data.Time diff --git a/src/Gargantext/Core/Text/Corpus/Parsers/GrandDebat.hs b/src/Gargantext/Core/Text/Corpus/Parsers/GrandDebat.hs index 92dcaede8decb063bb781c5c37b05ac5ce4c200f..b9e23114b599151fd4d0cc71d614cc0edd2de280 100644 --- a/src/Gargantext/Core/Text/Corpus/Parsers/GrandDebat.hs +++ b/src/Gargantext/Core/Text/Corpus/Parsers/GrandDebat.hs @@ -26,7 +26,6 @@ _flowCorpusDebat u n l fp = do module Gargantext.Core.Text.Corpus.Parsers.GrandDebat where -import Data.Aeson (ToJSON, FromJSON) import Data.ByteString.Lazy qualified as DBL import Data.JsonStream.Parser qualified as P import Data.Text qualified as Text diff --git a/src/Gargantext/Core/Text/Corpus/Parsers/Isidore.hs b/src/Gargantext/Core/Text/Corpus/Parsers/Isidore.hs index 02a6e8e8b013411bdd8d959b3eadbfaf6ad1d7b8..0516059801712fa9ec9077949e5b38d4d2fa1934 100644 --- a/src/Gargantext/Core/Text/Corpus/Parsers/Isidore.hs +++ b/src/Gargantext/Core/Text/Corpus/Parsers/Isidore.hs @@ -20,7 +20,6 @@ TODO: module Gargantext.Core.Text.Corpus.Parsers.Isidore where -import Control.Lens ( (^.), (.~) ) import Data.ByteString.Lazy (ByteString) import Data.RDF ( Node(LNode, UNode), LValue(PlainLL, TypedL, PlainL) ) import Data.Text qualified as T diff --git a/src/Gargantext/Core/Text/Corpus/Parsers/Json2Csv.hs b/src/Gargantext/Core/Text/Corpus/Parsers/Json2Csv.hs index f0f0aa828461368d678222f95e40b0d4a315cabf..a847799f145b36b9b5970ff9394ebdf102df9216 100644 --- a/src/Gargantext/Core/Text/Corpus/Parsers/Json2Csv.hs +++ b/src/Gargantext/Core/Text/Corpus/Parsers/Json2Csv.hs @@ -17,8 +17,7 @@ Json parser to export towoard CSV GargV3 format. module Gargantext.Core.Text.Corpus.Parsers.Json2Csv (json2csv, readPatents) where -import Data.Aeson -import Data.Aeson.TH (deriveJSON) +import Data.Aeson ( decode ) import Data.ByteString.Lazy (readFile) import Data.Text (unpack) import Data.Vector (fromList) diff --git a/src/Gargantext/Core/Text/Corpus/Parsers/Wikidata.hs b/src/Gargantext/Core/Text/Corpus/Parsers/Wikidata.hs index 6fe6177516c4fd3c2bbec9af1a9b3c7fd22b66d1..66a443e0c5bec5de0eb22463159304ff0dc6380d 100644 --- a/src/Gargantext/Core/Text/Corpus/Parsers/Wikidata.hs +++ b/src/Gargantext/Core/Text/Corpus/Parsers/Wikidata.hs @@ -18,7 +18,6 @@ Portability : POSIX module Gargantext.Core.Text.Corpus.Parsers.Wikidata where -import Control.Lens (makeLenses, (^.) ) import Data.List qualified as List import Data.Text (concat) import Database.HSparql.Connection ( BindingValue, EndPoint, selectQueryRaw ) diff --git a/src/Gargantext/Core/Text/List/Group/Prelude.hs b/src/Gargantext/Core/Text/List/Group/Prelude.hs index 20b373eb99f8d8f6d1a481e00247e343e9edcfcf..fdbb84455063878e80608106b6919d8c0ed694bd 100644 --- a/src/Gargantext/Core/Text/List/Group/Prelude.hs +++ b/src/Gargantext/Core/Text/List/Group/Prelude.hs @@ -16,11 +16,10 @@ Portability : POSIX module Gargantext.Core.Text.List.Group.Prelude where -import Control.Lens (makeLenses, view, set, over) +import Control.Lens (view, set, over) import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict qualified as HashMap import Data.List qualified as List -import Data.Monoid import Data.Semigroup import Data.Set qualified as Set import Gargantext.API.Ngrams.Types (NgramsElement, mkNgramsElement, NgramsTerm(..), RootParent(..), mSetFromList) diff --git a/src/Gargantext/Core/Text/List/Group/WithStem.hs b/src/Gargantext/Core/Text/List/Group/WithStem.hs index f3b39734fdab6cb7026cdb38b00b92ab800668f8..d57e6da2bebd5e54d55d924739352e3b1fd65b85 100644 --- a/src/Gargantext/Core/Text/List/Group/WithStem.hs +++ b/src/Gargantext/Core/Text/List/Group/WithStem.hs @@ -17,7 +17,6 @@ Portability : POSIX module Gargantext.Core.Text.List.Group.WithStem where -import Control.Lens (makeLenses) import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict qualified as HashMap import Data.HashSet (HashSet) diff --git a/src/Gargantext/Core/Text/Metrics.hs b/src/Gargantext/Core/Text/Metrics.hs index c09cfc1b3bbb6c71d30c22b00ca455cec2817106..01171953ddab6484ab1d9e90e2ad77d4e4b794cc 100644 --- a/src/Gargantext/Core/Text/Metrics.hs +++ b/src/Gargantext/Core/Text/Metrics.hs @@ -16,7 +16,6 @@ Mainly reexport functions in @Data.Text.Metrics@ module Gargantext.Core.Text.Metrics where -import Control.Lens (makeLenses) import Data.Array.Accelerate qualified as DAA import Data.Array.Accelerate.Interpreter qualified as DAA import Data.HashMap.Strict (HashMap) diff --git a/src/Gargantext/Core/Text/Metrics/Count.hs b/src/Gargantext/Core/Text/Metrics/Count.hs index 62a8b71a93fb68c70b9575a8041af85ebde3c5ba..909ee27dbd699b940f81329f4557070fec31f86a 100644 --- a/src/Gargantext/Core/Text/Metrics/Count.hs +++ b/src/Gargantext/Core/Text/Metrics/Count.hs @@ -32,7 +32,7 @@ import Data.List qualified as List import Data.Map.Strict ( empty, singleton , insertWith, unionWith, unionsWith , mapKeys ) import Data.Map.Strict qualified as DMS import Data.Text (pack) -import Gargantext.Core.Types +import Gargantext.Core.Types (Terms(..), Stems) import Gargantext.Prelude hiding (empty) ------------------------------------------------------------------------ diff --git a/src/Gargantext/Core/Text/Ngrams.hs b/src/Gargantext/Core/Text/Ngrams.hs index 5b032b78877348a230df1d566161d75e52d88c34..50993caf5e14f45786f6da549b9548e28df522dc 100644 --- a/src/Gargantext/Core/Text/Ngrams.hs +++ b/src/Gargantext/Core/Text/Ngrams.hs @@ -20,7 +20,7 @@ module Gargantext.Core.Text.Ngrams import Codec.Serialise (Serialise()) import Control.Lens (over) -import Data.Aeson ( ToJSON(..), FromJSON(..), FromJSONKey(..), FromJSONKeyFunction(..), Value(String), ToJSONKey(..) ) +import Data.Aeson ( FromJSONKey(..), FromJSONKeyFunction(..), Value(String), ToJSONKey(..) ) import Data.Aeson.Types (toJSONKeyText) import Data.Text (pack) import Database.PostgreSQL.Simple qualified as PGS diff --git a/src/Gargantext/Core/Text/Terms.hs b/src/Gargantext/Core/Text/Terms.hs index 2064b99cf1a1e122e9874bb40c26056a62fe998a..c022dd3ca9eee4237586489f25b213bdde517787 100644 --- a/src/Gargantext/Core/Text/Terms.hs +++ b/src/Gargantext/Core/Text/Terms.hs @@ -37,7 +37,7 @@ compute graph module Gargantext.Core.Text.Terms where -import Control.Lens ( (^.), view, over, makeLenses ) +import Control.Lens ( view, over ) import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict qualified as HashMap import Data.List qualified as List diff --git a/src/Gargantext/Core/Text/Terms/Multi/PosTagging/Types.hs b/src/Gargantext/Core/Text/Terms/Multi/PosTagging/Types.hs index 6f94e115ecdbdab023f5f9dab3b61cbe1ea2e854..0ab3ab1f5a5c89f55133b06f56b0c31a2afcb3ea 100644 --- a/src/Gargantext/Core/Text/Terms/Multi/PosTagging/Types.hs +++ b/src/Gargantext/Core/Text/Terms/Multi/PosTagging/Types.hs @@ -15,8 +15,7 @@ Portability : POSIX module Gargantext.Core.Text.Terms.Multi.PosTagging.Types where -import Data.Aeson.TH (deriveJSON) -import Gargantext.Core.Types +import Gargantext.Core.Types ( NER, POS ) import Gargantext.Core.Utils.Prefix (unPrefix) import Gargantext.Prelude diff --git a/src/Gargantext/Core/Types.hs b/src/Gargantext/Core/Types.hs index a9df8b9f7425536e4b8ece8fc2d032d14139b4db..b4f27bb14a65e1e888dc2e5aca1133170c3abfc5 100644 --- a/src/Gargantext/Core/Types.hs +++ b/src/Gargantext/Core/Types.hs @@ -31,19 +31,12 @@ module Gargantext.Core.Types ( module Gargantext.Core.Types.Main , TODO(..) ) where -import Control.Lens (Prism', (#), makeLenses, over) -import Data.Aeson -import Data.Aeson.TH (deriveJSON) -import Data.Maybe -import Data.Monoid -import Data.Semigroup +import Control.Lens (Prism', (#), over) +import Data.Aeson ( withText ) import Data.Set (empty) -import Data.String -import Data.Swagger (ToParamSchema) -import Data.Swagger (ToSchema(..)) +import Data.Swagger (ToParamSchema, ToSchema(..)) import Data.Text (unpack) -import Data.Validity -import GHC.Generics +import Data.Validity ( validationIsValid, Validation ) import Gargantext.Core.Types.Main import Gargantext.Core.Utils.Prefix (unPrefix, wellNamedSchema) import Gargantext.Database.Admin.Types.Node diff --git a/src/Gargantext/Core/Types/Main.hs b/src/Gargantext/Core/Types/Main.hs index 01e9f534308b3573b51d15fa5d74af1841159d91..126bc56cd94150d7a5aa73c020932c3fdc98b565 100644 --- a/src/Gargantext/Core/Types/Main.hs +++ b/src/Gargantext/Core/Types/Main.hs @@ -17,12 +17,10 @@ Portability : POSIX module Gargantext.Core.Types.Main where ------------------------------------------------------------------------ -import Data.Aeson (FromJSON, ToJSON) -import Data.Aeson.TH (deriveJSON) import Data.Bimap (Bimap) -import Data.Swagger +import Data.Swagger ( ToSchema(..), ToParamSchema, genericDeclareNamedSchema ) import Data.Text (unpack, pack) -import Gargantext.Core +import Gargantext.Core ( HasDBid(..) ) import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger, wellNamedSchema) import Gargantext.Database.Admin.Types.Node -- (NodeType(..), Node, Hyperdata(..)) import Gargantext.Prelude diff --git a/src/Gargantext/Core/Types/Phylo.hs b/src/Gargantext/Core/Types/Phylo.hs index 8a827e645bd8fc86ba1937a4a8f83f72a410eb10..a467bac4e200631c59c28106e32801a76d59c1c5 100644 --- a/src/Gargantext/Core/Types/Phylo.hs +++ b/src/Gargantext/Core/Types/Phylo.hs @@ -27,22 +27,17 @@ Phylomemy was first described in Chavalarias, D., Cointet, J.-P., 2013. Phylomem module Gargantext.Core.Types.Phylo where -import Control.DeepSeq -import Control.Lens (makeLenses) import Control.Monad.Fail (fail) -import Data.Aeson -import Data.Aeson.TH (deriveJSON) -import Data.Aeson.Types -import Data.Maybe -import Data.Monoid -import Data.Swagger +import Data.Aeson ( Value(..), (.:), (.:?), withObject, object, KeyValue((.=)) ) +import Data.Aeson.Types ( parseMaybe ) +import Data.Swagger ( NamedSchema(..), ToSchema(..), genericDeclareNamedSchema, defaultSchemaOptions ) import Data.Text qualified as T import Data.Time.Clock.POSIX (POSIXTime) +import Data.TreeDiff ( ToExpr ) import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger) import Gargantext.Prelude -import Test.QuickCheck +import Test.QuickCheck ( Arbitrary(arbitrary), oneof, vectorOf ) import Test.QuickCheck.Instances.Text() -import Data.TreeDiff ------------------------------------------------------------------------ -- | Phylo datatype descriptor of a phylomemy diff --git a/src/Gargantext/Core/Viz/Graph/API.hs b/src/Gargantext/Core/Viz/Graph/API.hs index 241dd0cf1dd5b391b931ffd85f32c098accbf784..ded2b92604f3e19a3f3bf45e37f952ae9ecfa943 100644 --- a/src/Gargantext/Core/Viz/Graph/API.hs +++ b/src/Gargantext/Core/Viz/Graph/API.hs @@ -18,8 +18,7 @@ Portability : POSIX module Gargantext.Core.Viz.Graph.API where -import Control.Lens (set, (^.), _Just, (^?), at) -import Data.Aeson ( ToJSON, FromJSON ) +import Control.Lens (set, _Just, (^?), at) import Data.HashMap.Strict qualified as HashMap import Data.Swagger ( ToSchema ) import Gargantext.API.Admin.EnvTypes (GargJob(..), Env) diff --git a/src/Gargantext/Core/Viz/Graph/Tools.hs b/src/Gargantext/Core/Viz/Graph/Tools.hs index b6877a67c1d1169dca532eefc9c30e9856bdfa62..65677d42478abd7be5948643fadfec6e86d4b4df 100644 --- a/src/Gargantext/Core/Viz/Graph/Tools.hs +++ b/src/Gargantext/Core/Viz/Graph/Tools.hs @@ -17,7 +17,6 @@ Portability : POSIX module Gargantext.Core.Viz.Graph.Tools where -import Data.Aeson ( ToJSON, FromJSON ) import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict qualified as HashMap import Data.HashSet qualified as HashSet diff --git a/src/Gargantext/Core/Viz/Graph/Types.hs b/src/Gargantext/Core/Viz/Graph/Types.hs index 9b7ae84707cd6e4013d8bd8576512ebc6ba702b5..59616d557c07b6051f92bc2deedbea58b5c81db2 100644 --- a/src/Gargantext/Core/Viz/Graph/Types.hs +++ b/src/Gargantext/Core/Viz/Graph/Types.hs @@ -14,9 +14,6 @@ Portability : POSIX module Gargantext.Core.Viz.Graph.Types where -import Control.Lens (makeLenses) -import Data.Aeson (FromJSON, ToJSON) -import Data.Aeson.TH (deriveJSON) import Data.HashSet (HashSet) import Data.HashSet qualified as HashSet import Data.Swagger (ToSchema(..), genericDeclareNamedSchema) diff --git a/src/Gargantext/Core/Viz/LegacyPhylo.hs b/src/Gargantext/Core/Viz/LegacyPhylo.hs index a4ff22e20638e94cc43dce0498bb03e510297d42..106dea9c7d4c35b9c575bfe47dfe1cb1a2691e41 100644 --- a/src/Gargantext/Core/Viz/LegacyPhylo.hs +++ b/src/Gargantext/Core/Viz/LegacyPhylo.hs @@ -27,9 +27,7 @@ one 8, e54847. module Gargantext.Core.Viz.LegacyPhylo where -import Control.DeepSeq -import Control.Lens (makeLenses) -import Data.Aeson.TH (deriveJSON,defaultOptions) +import Data.Aeson.TH (defaultOptions) import Data.Swagger import Data.Vector (Vector) import Gargantext.Core.Text.Context (TermList) diff --git a/src/Gargantext/Core/Viz/Phylo.hs b/src/Gargantext/Core/Viz/Phylo.hs index 5d383cbfc49a29c8f9ee4228d8230ae15d14c68e..ffc2656dfdb87356f0c6636831e2ae810e796d4e 100644 --- a/src/Gargantext/Core/Viz/Phylo.hs +++ b/src/Gargantext/Core/Viz/Phylo.hs @@ -26,17 +26,12 @@ one 8, e54847. module Gargantext.Core.Viz.Phylo where -import Control.DeepSeq -import Control.Lens (makeLenses) -import Data.Aeson -import Data.Aeson.TH (deriveJSON) import Data.Swagger import Data.Text (pack) import Data.Text.Lazy qualified as TextLazy -import Data.TreeDiff +import Data.TreeDiff (ToExpr) import Data.Vector (Vector) -import Gargantext.Core.Utils.Prefix (unPrefix) -import Gargantext.Core.Utils.Prefix (unPrefixSwagger) +import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger) import Gargantext.Prelude import Test.QuickCheck import Test.QuickCheck.Instances.Text() diff --git a/src/Gargantext/Database/Action/Delete.hs b/src/Gargantext/Database/Action/Delete.hs index 4f4337bffd3b1c817089ffd142bba90381d51182..2c75ab9ca554e2c4eea4c368aa1923456c045a8a 100644 --- a/src/Gargantext/Database/Action/Delete.hs +++ b/src/Gargantext/Database/Action/Delete.hs @@ -17,23 +17,21 @@ TODO: NodeError module Gargantext.Database.Action.Delete where -import Control.Lens (view, (^.)) -import Data.Text -import Servant - -import Gargantext.Core +import Control.Lens (view) +import Data.Text (unpack) +import Gargantext.Core (HasDBid(..)) import Gargantext.Core.Types.Individu (User(..)) import Gargantext.Database.Action.Share (delFolderTeam) import Gargantext.Database.Action.User (getUserId) -import Gargantext.Database.Admin.Types.Hyperdata.File -import Gargantext.Database.Admin.Types.Node -- (NodeType(..)) +import Gargantext.Database.Admin.Types.Hyperdata.File ( HyperdataFile(..) ) +import Gargantext.Database.Admin.Types.Node ( NodeId, NodeType(..) ) -- (NodeType(..)) +import Gargantext.Database.GargDB qualified as GargDB import Gargantext.Database.Prelude (Cmd', CmdCommon) import Gargantext.Database.Query.Table.Node (getNodeWith) +import Gargantext.Database.Query.Table.Node qualified as N (getNode, deleteNode) import Gargantext.Database.Query.Table.Node.Error (HasNodeError) import Gargantext.Database.Schema.Node import Gargantext.Prelude -import qualified Gargantext.Database.GargDB as GargDB -import qualified Gargantext.Database.Query.Table.Node as N (getNode, deleteNode) ------------------------------------------------------------------------ -- TODO diff --git a/src/Gargantext/Database/Action/Flow.hs b/src/Gargantext/Database/Action/Flow.hs index 87e1296b7c8ba1f3b8d1e78f092eb4a704566cd8..5afcf32b3213ecc32c01d7814912e3ac839fee1f 100644 --- a/src/Gargantext/Database/Action/Flow.hs +++ b/src/Gargantext/Database/Action/Flow.hs @@ -51,7 +51,7 @@ module Gargantext.Database.Action.Flow -- (flowDatabase, ngrams2list) where import Conduit -import Control.Lens ( (^.), to, view, over ) +import Control.Lens ( to, view, over ) import Data.Bifunctor qualified as B import Data.Conduit qualified as C import Data.Conduit.Internal (zipSources) diff --git a/src/Gargantext/Database/Action/Flow/Extract.hs b/src/Gargantext/Database/Action/Flow/Extract.hs index e993c9cad9624c4681965967225f2ab6d2df82b5..0504bb5971e1835b4aaeeb95175e28ae411e3827 100644 --- a/src/Gargantext/Database/Action/Flow/Extract.hs +++ b/src/Gargantext/Database/Action/Flow/Extract.hs @@ -17,7 +17,7 @@ Portability : POSIX module Gargantext.Database.Action.Flow.Extract where -import Control.Lens ((^.), _Just, view) +import Control.Lens (_Just, view) import Data.HashMap.Strict qualified as HashMap import Data.Map.Strict qualified as DM import Gargantext.Core (Lang, NLPServerConfig(server)) diff --git a/src/Gargantext/Database/Action/Flow/List.hs b/src/Gargantext/Database/Action/Flow/List.hs index 028abec206f5a717e9f2401392928fe72b4913ea..3fba7766f897f9f444dd488f8522700486af4f62 100644 --- a/src/Gargantext/Database/Action/Flow/List.hs +++ b/src/Gargantext/Database/Action/Flow/List.hs @@ -15,8 +15,7 @@ Portability : POSIX module Gargantext.Database.Action.Flow.List where -import Control.Lens ((^.), (+~), (%~), at, (.~)) -import Control.Monad.Reader +import Control.Lens ((+~), (%~), at) import Data.List qualified as List import Data.Map.Strict (toList) import Data.Map.Strict qualified as Map @@ -28,7 +27,7 @@ import Gargantext.Core.NodeStory (HasNodeStory, a_history, a_state, a_version) import Gargantext.Core.Text.Ngrams (NgramsType(..)) import Gargantext.Core.Types (HasValidationError(..), assertValid) import Gargantext.Core.Types.Main (ListType(CandidateTerm)) -import Gargantext.Database.Admin.Types.Node +import Gargantext.Database.Admin.Types.Node (ListId, NodeId) import Gargantext.Database.Query.Table.NodeNgrams (NodeNgramsPoly(..), NodeNgramsW, listInsertDb,{- getCgramsId -}) import Gargantext.Prelude hiding (toList) diff --git a/src/Gargantext/Database/Action/Flow/Pairing.hs b/src/Gargantext/Database/Action/Flow/Pairing.hs index a02ebc78ae504a3ac3243df49e8ce53a143f554e..682e772c5eeffdac5b5c56aff69dfee8444eb333 100644 --- a/src/Gargantext/Database/Action/Flow/Pairing.hs +++ b/src/Gargantext/Database/Action/Flow/Pairing.hs @@ -17,7 +17,7 @@ module Gargantext.Database.Action.Flow.Pairing -- (pairing) where -import Control.Lens (_Just, (^.), view) +import Control.Lens (_Just, view) import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict qualified as HM import Data.HashMap.Strict qualified as HashMap diff --git a/src/Gargantext/Database/Action/Flow/Types.hs b/src/Gargantext/Database/Action/Flow/Types.hs index 8193e8047137b99e0c47ac55c3f8e940e4d1220f..477938cfe9f1f027eeef75df9b2e85ed0186825e 100644 --- a/src/Gargantext/Database/Action/Flow/Types.hs +++ b/src/Gargantext/Database/Action/Flow/Types.hs @@ -18,9 +18,6 @@ module Gargantext.Database.Action.Flow.Types where import Conduit (ConduitT) -import Control.Lens (makeLenses) -import Data.Aeson (ToJSON) -import Data.Aeson.TH (deriveJSON) import Data.HashMap.Strict (HashMap) import Data.Swagger (ToSchema(..), genericDeclareNamedSchema) import Gargantext.Core.Flow.Types ( UniqId ) diff --git a/src/Gargantext/Database/Action/Flow/Utils.hs b/src/Gargantext/Database/Action/Flow/Utils.hs index 76651b72771bc329f462985fd283dbf4b35ef67a..6f4ee34626d7ed3cc234c22bc52a48ef9104b1e4 100644 --- a/src/Gargantext/Database/Action/Flow/Utils.hs +++ b/src/Gargantext/Database/Action/Flow/Utils.hs @@ -19,7 +19,6 @@ module Gargantext.Database.Action.Flow.Utils , mapNodeIdNgrams ) where -import Control.Lens ((^.)) import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict qualified as HashMap import Data.List qualified as List @@ -37,7 +36,7 @@ import Gargantext.Database.Action.Flow.Types (DocumentIdWithNgrams(..), FlowInse import Gargantext.Database.Admin.Types.Hyperdata.Document ( HyperdataDocument, hd_abstract, hd_title ) import Gargantext.Database.Admin.Types.Node import Gargantext.Database.Prelude (DBCmd, DbCmd') -import Gargantext.Database.Query.Table.ContextNodeNgrams +import Gargantext.Database.Query.Table.ContextNodeNgrams ( ContextNodeNgramsPoly(..), insertContextNodeNgrams ) import Gargantext.Database.Query.Table.Node.Document.Add qualified as Doc (add) import Gargantext.Database.Query.Table.Node.Document.Insert (ReturnId, addUniqId, insertDb, reId, reInserted, reUniqId) import Gargantext.Database.Query.Table.Node.Error (HasNodeError(..)) diff --git a/src/Gargantext/Database/Action/Search.hs b/src/Gargantext/Database/Action/Search.hs index 491d77c48dac53551b65373a09a7b28a10744c24..ac8407e38a39e0576f2d6b6a229f9df6375fb6a6 100644 --- a/src/Gargantext/Database/Action/Search.hs +++ b/src/Gargantext/Database/Action/Search.hs @@ -22,7 +22,7 @@ module Gargantext.Database.Action.Search ( ) where import Control.Arrow (returnA) -import Control.Lens ((^.), view) +import Control.Lens (view) import Data.BoolExpr ( BoolExpr(..), Signed(Negative, Positive) ) import Data.List qualified as List import Data.Map.Strict qualified as Map diff --git a/src/Gargantext/Database/Action/Share.hs b/src/Gargantext/Database/Action/Share.hs index 38c78fa4fc6cf2663b8441bdc0aad44ad0145dc4..cc406376c823c23d6b663f1a4277e91c4f7aef8c 100644 --- a/src/Gargantext/Database/Action/Share.hs +++ b/src/Gargantext/Database/Action/Share.hs @@ -17,12 +17,12 @@ module Gargantext.Database.Action.Share where import Control.Arrow (returnA) -import Control.Lens (view, (^.)) +import Control.Lens (view) import Gargantext.Core.Types.Individu (User(..)) import Gargantext.Database import Gargantext.Database.Action.User (getUserId) import Gargantext.Database.Admin.Config (hasNodeType, isInNodeTypes) -import Gargantext.Database.Admin.Types.Hyperdata (HyperdataAny(..)) +import Gargantext.Database.Admin.Types.Hyperdata.Any (HyperdataAny(..)) import Gargantext.Database.Admin.Types.Node import Gargantext.Database.Query.Table.Node (getNode, getNodesWith) import Gargantext.Database.Query.Table.Node.Error (HasNodeError, errorWith) diff --git a/src/Gargantext/Database/Action/User/New.hs b/src/Gargantext/Database/Action/User/New.hs index 9a997b608e6c1d35dbbf8c4b9e90a377f29998f3..70fda20a4b5491c9e06b2bb2299df150aef26d07 100644 --- a/src/Gargantext/Database/Action/User/New.hs +++ b/src/Gargantext/Database/Action/User/New.hs @@ -96,15 +96,15 @@ mkNewUser emailAddress pass' = let username = case guessUserName emailAddress of Just (u', _m) -> u' Nothing -> panic "[G.D.A.U.N.newUserQuick]: Email invalid" - in (NewUser username (Text.toLower emailAddress) pass') + in NewUser username (Text.toLower emailAddress) pass' ------------------------------------------------------------------------ -- | guessUserName -- guess username and normalize it (Text.toLower) guessUserName :: Text -> Maybe (Text,Text) guessUserName n = case splitOn "@" n of - [u',m'] -> if m' /= "" then Just (Text.toLower u',m') - else Nothing + [_u', ""] -> Nothing + [u', m'] -> Just (Text.toLower u', m') _ -> Nothing ------------------------------------------------------------------------ diff --git a/src/Gargantext/Database/Admin/Types/Node.hs b/src/Gargantext/Database/Admin/Types/Node.hs index 975cac994cb6559af9d8620e2d70b0c9a8e55aef..83048b2d5f3d351968124f01de40e970932f6e45 100644 --- a/src/Gargantext/Database/Admin/Types/Node.hs +++ b/src/Gargantext/Database/Admin/Types/Node.hs @@ -12,7 +12,6 @@ Portability : POSIX {-# OPTIONS_GHC -fno-warn-orphans #-} {-# LANGUAGE BangPatterns #-} -{-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DerivingVia #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} @@ -23,22 +22,20 @@ module Gargantext.Database.Admin.Types.Node where import Codec.Serialise (Serialise()) -import Data.Aeson -import Data.Aeson.TH (deriveJSON) +import Data.Aeson (FromJSONKey, ToJSONKey) import Data.Csv qualified as Csv -import Data.Either import Data.Morpheus.Kind (SCALAR) -import Data.Morpheus.Types +import Data.Morpheus.Types ( DecodeScalar(..), EncodeScalar(..), GQLType(KIND) ) import Data.Swagger import Data.Text (unpack, pack) import Data.Time (UTCTime) import Database.PostgreSQL.Simple.FromField (FromField, fromField, fromJSONField) import Database.PostgreSQL.Simple.ToField (ToField, toField, toJSONField) import Database.PostgreSQL.Simple.ToRow (ToRow, toRow) -import Fmt +import Fmt ( Buildable(..) ) import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger, wellNamedSchema) import Gargantext.Database.Schema.Context -import Gargantext.Database.Schema.Node +import Gargantext.Database.Schema.Node ( NodePoly(Node), NodePolySearch(NodeSearch) ) import Gargantext.Prelude import Gargantext.Prelude.Crypto.Hash (Hash) import Opaleye (DefaultFromField, defaultFromField, SqlInt4, SqlText, SqlTSVector, Nullable, fromPGSFromField) @@ -46,7 +43,7 @@ import Opaleye qualified as O import Prelude qualified import Servant hiding (Context) import Test.QuickCheck (elements, Positive (getPositive)) -import Test.QuickCheck.Arbitrary +import Test.QuickCheck.Arbitrary ( Arbitrary(arbitrary) ) import Test.QuickCheck.Instances.Text () import Test.QuickCheck.Instances.Time () import Text.Read (read) diff --git a/src/Gargantext/Database/GargDB.hs b/src/Gargantext/Database/GargDB.hs index 5177413f56dd4663b3be9ece20959288f53362ed..fe060f6dd6c6138d7830bc89e2493e5b8b3d32a8 100644 --- a/src/Gargantext/Database/GargDB.hs +++ b/src/Gargantext/Database/GargDB.hs @@ -12,23 +12,20 @@ TODO_2: quantitative tests (coded) -} -{-# LANGUAGE QuasiQuotes #-} - module Gargantext.Database.GargDB where import Control.Lens (view) -import Data.Aeson (ToJSON, toJSON) import Data.Text qualified as Text import Data.Tuple.Extra (both) import Gargantext.Database.Prelude (HasConfig(..)) import Gargantext.Prelude hiding (hash) -import Gargantext.Prelude.Config -import Gargantext.Prelude.Crypto.Hash +import Gargantext.Prelude.Config ( gc_datafilepath ) +import Gargantext.Prelude.Crypto.Hash ( IsHashable(hash) ) import Prelude qualified import System.Directory (createDirectoryIfMissing) import System.Directory qualified as SD -import System.IO.Error +import System.IO.Error ( isDoesNotExistError ) import System.Random (newStdGen) ------------------------------------------------------------------- diff --git a/src/Gargantext/Database/Prelude.hs b/src/Gargantext/Database/Prelude.hs index 5a1cf7b85526d8cf2925c9c890fcc7f32b06a5c1..69568989b183d9db42ad98145925a7fdf08a5174 100644 --- a/src/Gargantext/Database/Prelude.hs +++ b/src/Gargantext/Database/Prelude.hs @@ -9,19 +9,16 @@ Portability : POSIX -} -{-# LANGUAGE Arrows #-} {-# LANGUAGE ConstraintKinds, ScopedTypeVariables #-} {-# LANGUAGE LambdaCase #-} module Gargantext.Database.Prelude where -import Control.Exception +import Control.Exception (throw) import Control.Lens (Getter, view) -import Control.Monad.Except -import Control.Monad.Random -import Control.Monad.Reader +import Control.Monad.Random ( MonadRandom ) import Control.Monad.Trans.Control (MonadBaseControl) -import Data.Aeson (Result(Error,Success), fromJSON, FromJSON) +import Data.Aeson (Result(..)) import Data.ByteString qualified as DB import Data.List qualified as DL import Data.Pool (Pool, withResource) diff --git a/src/Gargantext/Database/Query/Table/Ngrams.hs b/src/Gargantext/Database/Query/Table/Ngrams.hs index edc2c6d03c979fda9408c43d122e0275de132c30..5b06a67bbce52618cca86a5e634ee59898a768d6 100644 --- a/src/Gargantext/Database/Query/Table/Ngrams.hs +++ b/src/Gargantext/Database/Query/Table/Ngrams.hs @@ -23,7 +23,6 @@ module Gargantext.Database.Query.Table.Ngrams ) where -import Control.Lens ((^.)) import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict qualified as HashMap import Data.List qualified as List diff --git a/src/Gargantext/Database/Query/Table/NgramsPostag.hs b/src/Gargantext/Database/Query/Table/NgramsPostag.hs index 7891b6769c5880e53076e8aa3bafa7b9cbfdd144..c361b0447a7cd3fff982822c91e1c8cceb142b7a 100644 --- a/src/Gargantext/Database/Query/Table/NgramsPostag.hs +++ b/src/Gargantext/Database/Query/Table/NgramsPostag.hs @@ -18,7 +18,7 @@ TODO use Opaleye for the queries. module Gargantext.Database.Query.Table.NgramsPostag where -import Control.Lens (view, (^.)) +import Control.Lens (view) import Data.HashMap.Strict (HashMap) import Data.HashMap.Strict qualified as HashMap import Data.List qualified as List diff --git a/src/Gargantext/Database/Query/Table/Node.hs b/src/Gargantext/Database/Query/Table/Node.hs index cc16dcf22fbb9e315e9edd4802f0bfc68c53fdb5..7de772db750b8424f1deb4c7407bf208763b0163 100644 --- a/src/Gargantext/Database/Query/Table/Node.hs +++ b/src/Gargantext/Database/Query/Table/Node.hs @@ -22,7 +22,7 @@ module Gargantext.Database.Query.Table.Node import Control.Arrow (returnA) import Control.Lens (set, view) -import Data.Aeson ( encode, Value, ToJSON ) +import Data.Aeson ( encode, Value ) import Database.PostgreSQL.Simple qualified as PGS import Database.PostgreSQL.Simple.SqlQQ (sql) import Gargantext.Core ( HasDBid(toDBid) ) diff --git a/src/Gargantext/Database/Query/Table/Node/Document/Insert.hs b/src/Gargantext/Database/Query/Table/Node/Document/Insert.hs index bf77716d2832857569d6873581a28dcbd803afa4..ef29a5050d59086a12804c8581385f4d5accb225 100644 --- a/src/Gargantext/Database/Query/Table/Node/Document/Insert.hs +++ b/src/Gargantext/Database/Query/Table/Node/Document/Insert.hs @@ -57,7 +57,6 @@ the concatenation of the parameters defined by @shaParameters@. module Gargantext.Database.Query.Table.Node.Document.Insert where -import Data.Aeson (toJSON, ToJSON) import Data.Text qualified as DT (pack, concat, take, filter, toLower) import Data.Time.Segment (jour) import Database.PostgreSQL.Simple (FromRow, Query, Only(..)) diff --git a/src/Gargantext/Database/Query/Table/Node/Error.hs b/src/Gargantext/Database/Query/Table/Node/Error.hs index 5110e936d35b19768378a839e84fc92625ecb03e..e0db91fdbc2eff31fd58dcd9a9fe28adf5a43c03 100644 --- a/src/Gargantext/Database/Query/Table/Node/Error.hs +++ b/src/Gargantext/Database/Query/Table/Node/Error.hs @@ -27,7 +27,7 @@ module Gargantext.Database.Query.Table.Node.Error ( ) where import Control.Lens (Prism', (#), (^?)) -import Data.Aeson ( object, ToJSON(toJSON) ) +import Data.Aeson (object) import Data.Text qualified as T import Gargantext.Core.Types.Individu ( renderUser, User, Username ) import Gargantext.Database.Admin.Types.Node (ListId, NodeId(..), ContextId, UserId, ParentId) diff --git a/src/Gargantext/Database/Query/Table/NodeContext.hs b/src/Gargantext/Database/Query/Table/NodeContext.hs index b13bba9b11aba45f992efe1d325e0c51f99e2248..729c1762e555d50559cbbbe56caad66179cfc736 100644 --- a/src/Gargantext/Database/Query/Table/NodeContext.hs +++ b/src/Gargantext/Database/Query/Table/NodeContext.hs @@ -44,7 +44,7 @@ module Gargantext.Database.Query.Table.NodeContext where import Control.Arrow (returnA) -import Control.Lens (view, (^.)) +import Control.Lens (view) import Data.Text (splitOn) import Data.Time (UTCTime) import Database.PostgreSQL.Simple qualified as PGS (In(..), Query, Only(..)) diff --git a/src/Gargantext/Database/Query/Table/NodeNode.hs b/src/Gargantext/Database/Query/Table/NodeNode.hs index d066911ba0f7c362d212eb4f5bee0032c00dca82..5e1a2e476cb80dc09b93fecf338c5974dfb12461 100644 --- a/src/Gargantext/Database/Query/Table/NodeNode.hs +++ b/src/Gargantext/Database/Query/Table/NodeNode.hs @@ -33,7 +33,7 @@ module Gargantext.Database.Query.Table.NodeNode where import Control.Arrow (returnA) -import Control.Lens ((^.), view) +import Control.Lens (view) import Data.Text (splitOn) import Database.PostgreSQL.Simple qualified as PGS import Database.PostgreSQL.Simple.SqlQQ (sql) diff --git a/src/Gargantext/Database/Query/Table/User.hs b/src/Gargantext/Database/Query/Table/User.hs index 299196b9e0c2020c5867b3d5cd672c4914e0a1f5..632e98887f22016d466a3a7c0bcaecef086240ff 100644 --- a/src/Gargantext/Database/Query/Table/User.hs +++ b/src/Gargantext/Database/Query/Table/User.hs @@ -48,7 +48,7 @@ module Gargantext.Database.Query.Table.User where import Control.Arrow (returnA) -import Control.Lens ((^.), (?~)) +import Control.Lens ((?~)) import Data.List.NonEmpty qualified as NE import Data.Time (UTCTime) import Data.UUID qualified as UUID diff --git a/src/Gargantext/Database/Query/Tree.hs b/src/Gargantext/Database/Query/Tree.hs index d3344bed870319f1fabc3af0ca284880dc494740..1d1095ec833ef34fd8e37f42b1476af6122ae19f 100644 --- a/src/Gargantext/Database/Query/Tree.hs +++ b/src/Gargantext/Database/Query/Tree.hs @@ -43,15 +43,14 @@ module Gargantext.Database.Query.Tree ) where -import Control.Lens (view, toListOf, at, each, _Just, to, set, makeLenses) +import Control.Lens (view, toListOf, at, each, _Just, to, set) import Data.List (tail, nub) import Data.List qualified as List import Data.Map.Strict (fromListWith, lookup) -import Data.Proxy import Data.Text qualified as Text -import Database.PostgreSQL.Simple -import Database.PostgreSQL.Simple.SqlQQ -import Gargantext.Core +import Database.PostgreSQL.Simple ( Only(Only), In(In) ) +import Database.PostgreSQL.Simple.SqlQQ ( sql ) +import Gargantext.Core ( fromDBid, HasDBid(toDBid) ) import Gargantext.Core.Types.Main (NodeTree(..), Tree(..)) import Gargantext.Database.Admin.Config () import Gargantext.Database.Admin.Types.Hyperdata.Any (HyperdataAny) diff --git a/src/Gargantext/Database/Schema/NgramsPostag.hs b/src/Gargantext/Database/Schema/NgramsPostag.hs index 51b7b57d864d123bcde8dc91d1b1978280f2debd..8cdee441e6f82404317453a866ef2fe3e39f2930 100644 --- a/src/Gargantext/Database/Schema/NgramsPostag.hs +++ b/src/Gargantext/Database/Schema/NgramsPostag.hs @@ -20,7 +20,6 @@ ngrams in NgramsTerm Lists. module Gargantext.Database.Schema.NgramsPostag where -import Control.Lens ( makeLenses ) import Database.PostgreSQL.Simple qualified as PGS import Gargantext.Database.Schema.Prelude ( Column, SqlInt4, SqlText, ToField(toField), toRow ) import Gargantext.Prelude diff --git a/src/Gargantext/Database/Schema/User.hs b/src/Gargantext/Database/Schema/User.hs index c653b639fb0b4238030644966e00c37dbdbb8929..90fa4156884895130a56c1b75481b1977d0e9084 100644 --- a/src/Gargantext/Database/Schema/User.hs +++ b/src/Gargantext/Database/Schema/User.hs @@ -21,7 +21,6 @@ Functions to deal with users, database side. module Gargantext.Database.Schema.User where -import Data.Aeson.TH (deriveJSON) import Data.Morpheus.Types (GQLType(typeOptions)) import Data.Time (UTCTime) import Database.PostgreSQL.Simple.FromField (FromField, fromField) diff --git a/src/Gargantext/Utils/JohnSnowNLP.hs b/src/Gargantext/Utils/JohnSnowNLP.hs index c51cce5602cdf9d28a3a8b4c0cf2dd53923e53a4..ac013442fd3988d91ebbdd324f1ff4a459555985 100644 --- a/src/Gargantext/Utils/JohnSnowNLP.hs +++ b/src/Gargantext/Utils/JohnSnowNLP.hs @@ -13,13 +13,12 @@ Portability : POSIX module Gargantext.Utils.JohnSnowNLP where -import Control.Lens -import Data.Aeson (encode, ToJSON, toJSON, FromJSON, parseJSON, Value(..), (.:), (.:?)) -import Data.Aeson.TH (deriveJSON) +import Control.Lens ( FunctorWithIndex(imap) ) +import Data.Aeson (encode, Value(..), (.:), (.:?)) import Data.Aeson.Types (prependFailure, typeMismatch) import Data.List.Safe qualified as LS import Data.Map.Strict qualified as Map -import Data.Text hiding (map, group, filter, concat, zip) +import Data.Text (unpack) import Gargantext.Core (Lang(..)) import Gargantext.Core.Text.Terms.Multi.PosTagging.Types import Gargantext.Core.Types (POS(..)) diff --git a/src/Gargantext/Utils/SpacyNLP/Types.hs b/src/Gargantext/Utils/SpacyNLP/Types.hs index a43cd69aca53ea3f3eaeefff0e35a0bbb0062610..43ab346fca1bb6c29c21debf99b8966095f972de 100644 --- a/src/Gargantext/Utils/SpacyNLP/Types.hs +++ b/src/Gargantext/Utils/SpacyNLP/Types.hs @@ -17,9 +17,6 @@ Server to be used: https://gitlab.iscpif.fr/gargantext/spacy-server module Gargantext.Utils.SpacyNLP.Types where -import Control.Lens -import Data.Aeson.TH (deriveJSON) -import Data.Text hiding (map, group, filter, concat, zip) import Gargantext.Core.Types (POS(..), NER(..)) import Gargantext.Core.Utils.Prefix (unPrefix) import Gargantext.Prelude diff --git a/src/Gargantext/Utils/UTCTime.hs b/src/Gargantext/Utils/UTCTime.hs index 8f243d12be4f132c37fe0de66a92a3356bdc1b4a..4414c9e45fcd7593a4761f40b8bc3e154bb2ded9 100644 --- a/src/Gargantext/Utils/UTCTime.hs +++ b/src/Gargantext/Utils/UTCTime.hs @@ -16,7 +16,6 @@ Portability : POSIX module Gargantext.Utils.UTCTime where -import Data.Aeson (FromJSON, ToJSON) import Data.Morpheus.Kind (SCALAR) import Data.Morpheus.Types (GQLType(..), DecodeScalar(..), EncodeScalar(..)) import Data.Morpheus.Types qualified as DMT