Squashed commit of the following:

commit 28e2927e
Author: Grégoire Locqueville <gregoire.locqueville@cnrs.fr>
Date:   Mon Dec 2 17:06:29 2024 +0100

    Deal with error with a proper error

    ... instead of returning a `Maybe` to the frontend

commit 54675ae8
Author: Grégoire Locqueville <gregoire.locqueville@cnrs.fr>
Date:   Mon Dec 2 16:27:03 2024 +0100

    Return Maybe (node ID) upon creating a subcorpus
parent 6b1167bb
Pipeline #7267 canceled with stages
module Gargantext.API.Node.Corpus.Subcorpus where module Gargantext.API.Node.Corpus.Subcorpus where
import Data.Validity (Validation(..), ValidationChain(..))
import Gargantext.Prelude import Gargantext.Prelude
import Gargantext.API.Errors.Types (BackendInternalError(..))
import Gargantext.API.Errors.Types (BackendInternalError)
import Gargantext.API.Routes.Named.Corpus (MakeSubcorpusAPI(..), SubcorpusParams(..)) import Gargantext.API.Routes.Named.Corpus (MakeSubcorpusAPI(..), SubcorpusParams(..))
import Gargantext.Core.NodeStory.Types (HasNodeStoryEnv) import Gargantext.Core.NodeStory.Types (HasNodeStoryEnv)
import Gargantext.Core.NLP (HasNLPServer) import Gargantext.Core.NLP (HasNLPServer)
...@@ -21,12 +21,14 @@ makeSubcorpus :: ( HasNodeStoryEnv env ...@@ -21,12 +21,14 @@ makeSubcorpus :: ( HasNodeStoryEnv env
=> UserId => UserId
-> MakeSubcorpusAPI (AsServerT m) -> MakeSubcorpusAPI (AsServerT m)
makeSubcorpus user = MakeSubcorpusAPI $ \corpusId params -> do makeSubcorpus user = MakeSubcorpusAPI $ \corpusId params -> do
case parseQuery (RawQuery $ _subcorpusParams_query params) of let queryText = _subcorpusParams_query params
Left _ -> return False case parseQuery (RawQuery queryText) of
Right q -> do Left msg -> throwError $ InternalValidationError $ Validation [Violated $
_ <- makeSubcorpusFromQuery "Failed to parse the query " <> show queryText <> ": " <> msg]
Right q -> do
subcorpusId <- makeSubcorpusFromQuery
(UserDBId user) (UserDBId user)
corpusId corpusId
q q
(_subcorpusParams_reuseParentList params) (_subcorpusParams_reuseParentList params)
return True return subcorpusId
...@@ -30,7 +30,7 @@ import Gargantext.API.Node.Types (NewWithForm, WithQuery) ...@@ -30,7 +30,7 @@ import Gargantext.API.Node.Types (NewWithForm, WithQuery)
import Gargantext.API.Worker (WorkerAPI) import Gargantext.API.Worker (WorkerAPI)
import Gargantext.Core.Text.Ngrams (NgramsType(..)) import Gargantext.Core.Text.Ngrams (NgramsType(..))
import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger) import Gargantext.Core.Utils.Prefix (unPrefix, unPrefixSwagger)
import Gargantext.Database.Admin.Types.Node (CorpusId, ListId) import Gargantext.Database.Admin.Types.Node (CorpusId, ListId, NodeId)
import Gargantext.Prelude (Bool) import Gargantext.Prelude (Bool)
import Servant import Servant
...@@ -67,7 +67,7 @@ newtype MakeSubcorpusAPI mode = MakeSubcorpusAPI ...@@ -67,7 +67,7 @@ newtype MakeSubcorpusAPI mode = MakeSubcorpusAPI
:> Capture "corpus_id" CorpusId :> Capture "corpus_id" CorpusId
:> "subcorpus" :> "subcorpus"
:> ReqBody '[JSON] SubcorpusParams :> ReqBody '[JSON] SubcorpusParams
:> Post '[JSON] Bool -- was request successful :> Post '[JSON] NodeId -- new subcorpus ID
} deriving Generic } deriving Generic
data SubcorpusParams = SubcorpusParams data SubcorpusParams = SubcorpusParams
......
...@@ -61,7 +61,7 @@ serverPrivateGargAPI' authenticatedUser@(AuthenticatedUser userNodeId userId) ...@@ -61,7 +61,7 @@ serverPrivateGargAPI' authenticatedUser@(AuthenticatedUser userNodeId userId)
, membersAPI = members , membersAPI = members
, addWithFormAPI = addCorpusWithForm (RootId userNodeId) , addWithFormAPI = addCorpusWithForm (RootId userNodeId)
, addWithQueryEp = addCorpusWithQuery (RootId userNodeId) , addWithQueryEp = addCorpusWithQuery (RootId userNodeId)
, makeSubcorpusAPI = Subcorpus.makeSubcorpus userId , makeSubcorpusAPI = Subcorpus.makeSubcorpus userId
, listGetAPI = List.getAPI , listGetAPI = List.getAPI
, listJsonAPI = List.jsonAPI , listJsonAPI = List.jsonAPI
, listTsvAPI = List.tsvAPI , listTsvAPI = List.tsvAPI
......
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