Commit c53aa1ac authored by Przemyslaw Kaminski's avatar Przemyslaw Kaminski

[flow] some refactoring so that nodes are created in separate function

parent 56eb1b5c
...@@ -194,7 +194,10 @@ flowDataText :: forall env err m. ...@@ -194,7 +194,10 @@ flowDataText :: forall env err m.
-> Maybe FlowSocialListWith -> Maybe FlowSocialListWith
-> (JobLog -> m ()) -> (JobLog -> m ())
-> m CorpusId -> m CorpusId
flowDataText u (DataOld ids) tt cid mfslw _ = flowCorpusUser (_tt_lang tt) u (Right [cid]) corpusType ids mfslw flowDataText u (DataOld ids) tt cid mfslw _ = do
(_userId, userCorpusId, listId) <- createNodes u (Right [cid]) corpusType
_ <- Doc.add userCorpusId ids
flowCorpusUser (_tt_lang tt) u userCorpusId listId corpusType mfslw
where where
corpusType = (Nothing :: Maybe HyperdataCorpus) corpusType = (Nothing :: Maybe HyperdataCorpus)
flowDataText u (DataNew (mLen, txtC)) tt cid mfslw logStatus = flowDataText u (DataNew (mLen, txtC)) tt cid mfslw logStatus =
...@@ -263,12 +266,18 @@ flow :: forall env err m a c. ...@@ -263,12 +266,18 @@ flow :: forall env err m a c.
-> (JobLog -> m ()) -> (JobLog -> m ())
-> m CorpusId -> m CorpusId
flow c u cn la mfslw (mLength, docsC) logStatus = do flow c u cn la mfslw (mLength, docsC) logStatus = do
(_userId, userCorpusId, listId) <- createNodes u cn c
-- TODO if public insertMasterDocs else insertUserDocs -- TODO if public insertMasterDocs else insertUserDocs
ids <- runConduit $ zipSources (yieldMany [1..]) docsC _ <- runConduit $ zipSources (yieldMany [1..]) docsC
.| CList.chunksOf 100 .| CList.chunksOf 100
.| mapMC insertDocs' .| mapMC insertDocs'
.| CList.concat .| mapM_C (\ids' -> do
.| sinkList _ <- Doc.add userCorpusId ids'
pure ())
.| sinkList
_ <- flowCorpusUser (la ^. tt_lang) u userCorpusId listId c mfslw
-- ids <- traverse (\(idx, doc) -> do -- ids <- traverse (\(idx, doc) -> do
-- id <- insertMasterDocs c la doc -- id <- insertMasterDocs c la doc
-- logStatus JobLog { _scst_succeeded = Just $ 1 + idx -- logStatus JobLog { _scst_succeeded = Just $ 1 + idx
...@@ -278,7 +287,9 @@ flow c u cn la mfslw (mLength, docsC) logStatus = do ...@@ -278,7 +287,9 @@ flow c u cn la mfslw (mLength, docsC) logStatus = do
-- } -- }
-- pure id -- pure id
-- ) (zip [1..] docs) -- ) (zip [1..] docs)
flowCorpusUser (la ^. tt_lang) u cn c ids mfslw --printDebug "[flow] calling flowCorpusUser" (0 :: Int)
pure userCorpusId
--flowCorpusUser (la ^. tt_lang) u cn c ids mfslw
where where
insertDocs' :: [(Integer, a)] -> m [NodeId] insertDocs' :: [(Integer, a)] -> m [NodeId]
...@@ -300,17 +311,14 @@ flow c u cn la mfslw (mLength, docsC) logStatus = do ...@@ -300,17 +311,14 @@ flow c u cn la mfslw (mLength, docsC) logStatus = do
------------------------------------------------------------------------ ------------------------------------------------------------------------
flowCorpusUser :: ( FlowCmdM env err m createNodes :: ( FlowCmdM env err m
, MkCorpus c , MkCorpus c
) )
=> Lang => User
-> User -> Either CorpusName [CorpusId]
-> Either CorpusName [CorpusId] -> Maybe c
-> Maybe c -> m (UserId, CorpusId, ListId)
-> [ContextId] createNodes user corpusName ctype = do
-> Maybe FlowSocialListWith
-> m CorpusId
flowCorpusUser l user corpusName ctype ids mfslw = do
-- User Flow -- User Flow
(userId, _rootId, userCorpusId) <- getOrMk_RootWithCorpus user corpusName ctype (userId, _rootId, userCorpusId) <- getOrMk_RootWithCorpus user corpusName ctype
-- NodeTexts is first -- NodeTexts is first
...@@ -319,12 +327,25 @@ flowCorpusUser l user corpusName ctype ids mfslw = do ...@@ -319,12 +327,25 @@ flowCorpusUser l user corpusName ctype ids mfslw = do
-- NodeList is second -- NodeList is second
listId <- getOrMkList userCorpusId userId listId <- getOrMkList userCorpusId userId
-- _cooc <- insertDefaultNode NodeListCooc listId userId
-- TODO: check if present already, ignore
_ <- Doc.add userCorpusId ids
-- printDebug "Node Text Ids:" tId -- User Graph Flow
_ <- insertDefaultNodeIfNotExists NodeGraph userCorpusId userId
_ <- insertDefaultNodeIfNotExists NodeDashboard userCorpusId userId
pure (userId, userCorpusId, listId)
flowCorpusUser :: ( FlowCmdM env err m
, MkCorpus c
)
=> Lang
-> User
-> CorpusId
-> ListId
-> Maybe c
-> Maybe FlowSocialListWith
-> m CorpusId
flowCorpusUser l user userCorpusId listId ctype mfslw = do
-- User List Flow -- User List Flow
(masterUserId, _masterRootId, masterCorpusId) (masterUserId, _masterRootId, masterCorpusId)
<- getOrMk_RootWithCorpus (UserName userMaster) (Left "") ctype <- getOrMk_RootWithCorpus (UserName userMaster) (Left "") ctype
...@@ -346,9 +367,6 @@ flowCorpusUser l user corpusName ctype ids mfslw = do ...@@ -346,9 +367,6 @@ flowCorpusUser l user corpusName ctype ids mfslw = do
pure () pure ()
-- _ <- insertOccsUpdates userCorpusId mastListId -- _ <- insertOccsUpdates userCorpusId mastListId
-- printDebug "userListId" userListId -- printDebug "userListId" userListId
-- User Graph Flow
_ <- insertDefaultNodeIfNotExists NodeGraph userCorpusId userId
_ <- insertDefaultNodeIfNotExists NodeDashboard userCorpusId userId
--_ <- mkPhylo userCorpusId userId --_ <- mkPhylo userCorpusId userId
-- Annuaire Flow -- Annuaire Flow
-- _ <- mkAnnuaire rootUserId userId -- _ <- mkAnnuaire rootUserId userId
......
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