[list] fixes to list CSV upload

Now, error should be reported, provided we fix job logs (?)
parent 33881047
Pipeline #3829 failed with stage
in 29 minutes and 40 seconds
...@@ -45,7 +45,6 @@ library ...@@ -45,7 +45,6 @@ library
Gargantext.API.Node.Share Gargantext.API.Node.Share
Gargantext.API.Prelude Gargantext.API.Prelude
Gargantext.Core Gargantext.Core
Gargantext.Core.NLP
Gargantext.Core.Methods.Similarities Gargantext.Core.Methods.Similarities
Gargantext.Core.NLP Gargantext.Core.NLP
Gargantext.Core.NodeStory Gargantext.Core.NodeStory
......
...@@ -25,6 +25,7 @@ import Data.Text (Text, concat, pack, splitOn) ...@@ -25,6 +25,7 @@ import Data.Text (Text, concat, pack, splitOn)
import Data.Vector (Vector) import Data.Vector (Vector)
import Gargantext.API.Admin.EnvTypes (Env, GargJob(..)) import Gargantext.API.Admin.EnvTypes (Env, GargJob(..))
import Gargantext.API.Admin.Orchestrator.Types import Gargantext.API.Admin.Orchestrator.Types
import Gargantext.API.Job (jobLogFailTotalWithMessage, jobLogSuccess)
import Gargantext.API.Ngrams (setListNgrams) import Gargantext.API.Ngrams (setListNgrams)
import Gargantext.API.Ngrams.List.Types import Gargantext.API.Ngrams.List.Types
import Gargantext.API.Ngrams.Prelude (getNgramsList) import Gargantext.API.Ngrams.Prelude (getNgramsList)
...@@ -235,10 +236,10 @@ postAsync' l (WithJsonFile m _) logStatus = do ...@@ -235,10 +236,10 @@ postAsync' l (WithJsonFile m _) logStatus = do
------------------------------------------------------------------------ ------------------------------------------------------------------------
readCsvText :: Text -> [(Text, Text, Text)] readCsvText :: Text -> Either Text [(Text, Text, Text)]
readCsvText t = case eDec of readCsvText t = case eDec of
Left _ -> [] Left err -> Left $ pack err
Right dec -> Vec.toList dec Right dec -> Right $ Vec.toList dec
where where
lt = BSL.fromStrict $ P.encodeUtf8 t lt = BSL.fromStrict $ P.encodeUtf8 t
eDec = Csv.decodeWith eDec = Csv.decodeWith
...@@ -268,22 +269,25 @@ parseCsvData lst = Map.fromList $ conv <$> lst ...@@ -268,22 +269,25 @@ parseCsvData lst = Map.fromList $ conv <$> lst
csvPost :: FlowCmdM env err m csvPost :: FlowCmdM env err m
=> ListId => ListId
-> Text -> Text
-> m Bool -> m (Either Text ())
csvPost l m = do csvPost l m = do
-- printDebug "[csvPost] l" l -- printDebug "[csvPost] l" l
-- printDebug "[csvPost] m" m -- printDebug "[csvPost] m" m
-- status label forms -- status label forms
let lst = readCsvText m let eLst = readCsvText m
let p = parseCsvData lst case eLst of
--printDebug "[csvPost] lst" lst Left err -> pure $ Left err
-- printDebug "[csvPost] p" p Right lst -> do
_ <- setListNgrams l NgramsTerms p let p = parseCsvData lst
-- printDebug "ReIndexing List" l --printDebug "[csvPost] lst" lst
corpus_node <- getNode l -- (Proxy :: Proxy HyperdataList) -- printDebug "[csvPost] p" p
let corpus_id = fromMaybe (panic "") (_node_parent_id corpus_node) _ <- setListNgrams l NgramsTerms p
_ <- reIndexWith corpus_id l NgramsTerms (Set.fromList [MapTerm, CandidateTerm]) -- printDebug "ReIndexing List" l
corpus_node <- getNode l -- (Proxy :: Proxy HyperdataList)
pure True let corpus_id = fromMaybe (panic "") (_node_parent_id corpus_node)
_ <- reIndexWith corpus_id l NgramsTerms (Set.fromList [MapTerm, CandidateTerm])
pure $ Right ()
------------------------------------------------------------------------ ------------------------------------------------------------------------
csvPostAsync :: ServerT CSVAPI (GargM Env GargError) csvPostAsync :: ServerT CSVAPI (GargM Env GargError)
...@@ -293,7 +297,10 @@ csvPostAsync lId = ...@@ -293,7 +297,10 @@ csvPostAsync lId =
-- printDebug "[csvPostAsync] filetype" ft -- printDebug "[csvPostAsync] filetype" ft
-- printDebug "[csvPostAsync] name" n -- printDebug "[csvPostAsync] name" n
jobHandleLogger jHandle x jobHandleLogger jHandle x
csvPostAsync' lId f log'' jl <- csvPostAsync' lId f log''
printDebug "[csvPostAsync] job ended with joblog: " jl
log'' jl
pure jl
csvPostAsync' :: FlowCmdM env err m csvPostAsync' :: FlowCmdM env err m
...@@ -302,16 +309,22 @@ csvPostAsync' :: FlowCmdM env err m ...@@ -302,16 +309,22 @@ csvPostAsync' :: FlowCmdM env err m
-> (JobLog -> m ()) -> (JobLog -> m ())
-> m JobLog -> m JobLog
csvPostAsync' l (WithTextFile _ m _) logStatus = do csvPostAsync' l (WithTextFile _ m _) logStatus = do
logStatus JobLog { _scst_succeeded = Just 0 let jl = JobLog { _scst_succeeded = Just 0
, _scst_failed = Just 0 , _scst_failed = Just 0
, _scst_remaining = Just 1 , _scst_remaining = Just 1
, _scst_events = Just [] , _scst_events = Just []
} }
_r <- csvPost l m logStatus jl
ePost <- csvPost l m
pure JobLog { _scst_succeeded = Just 1 case ePost of
, _scst_failed = Just 0 Left err -> pure $ jobLogFailTotalWithMessage err jl
, _scst_remaining = Just 0 Right () -> pure $ jobLogSuccess jl
, _scst_events = Just []
}
------------------------------------------------------------------------ ------------------------------------------------------------------------
-- | This is for debugging the CSV parser in the REPL
importCsvFile :: FlowCmdM env err m
=> ListId -> P.FilePath -> m (Either Text ())
importCsvFile lId fp = do
contents <- liftBase $ P.readFile fp
csvPost lId contents
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