Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
haskell-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
158
Issues
158
List
Board
Labels
Milestones
Merge Requests
11
Merge Requests
11
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gargantext
haskell-gargantext
Commits
45d49b0f
Commit
45d49b0f
authored
Oct 11, 2020
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[FIX] Monads dependencies, flowSocialList integration to flow (WIP)
parent
1690d344
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
100 additions
and
72 deletions
+100
-72
Ngrams.hs
src/Gargantext/API/Ngrams.hs
+17
-12
List.hs
src/Gargantext/Core/Text/List.hs
+46
-25
Social.hs
src/Gargantext/Core/Text/List/Social.hs
+6
-9
Flow.hs
src/Gargantext/Database/Action/Flow.hs
+27
-21
Types.hs
src/Gargantext/Database/Action/Flow/Types.hs
+2
-0
Prelude.hs
src/Gargantext/Database/Prelude.hs
+2
-5
No files found.
src/Gargantext/API/Ngrams.hs
View file @
45d49b0f
...
@@ -131,6 +131,7 @@ import Gargantext.Database.Admin.Types.Node (NodeType(..))
...
@@ -131,6 +131,7 @@ import Gargantext.Database.Admin.Types.Node (NodeType(..))
import
Gargantext.Database.Prelude
(
HasConnectionPool
,
HasConfig
)
import
Gargantext.Database.Prelude
(
HasConnectionPool
,
HasConfig
)
import
qualified
Gargantext.Database.Query.Table.Ngrams
as
TableNgrams
import
qualified
Gargantext.Database.Query.Table.Ngrams
as
TableNgrams
import
Gargantext.Database.Query.Table.Node
(
getNode
)
import
Gargantext.Database.Query.Table.Node
(
getNode
)
import
Gargantext.Database.Query.Tree.Error
(
HasTreeError
)
import
Gargantext.Database.Schema.Node
(
node_id
,
node_parentId
,
node_userId
)
import
Gargantext.Database.Schema.Node
(
node_id
,
node_parentId
,
node_userId
)
{-
{-
...
@@ -318,12 +319,14 @@ tableNgramsPull listId ngramsType p_version = do
...
@@ -318,12 +319,14 @@ tableNgramsPull listId ngramsType p_version = do
-- Apply the given patch to the DB and returns the patch to be applied on the
-- Apply the given patch to the DB and returns the patch to be applied on the
-- client.
-- client.
-- TODO-ACCESS check
-- TODO-ACCESS check
tableNgramsPut
::
(
HasNodeError
err
,
tableNgramsPut
::
(
HasNodeError
err
HasInvalidError
err
,
,
HasTreeError
err
HasConfig
env
,
,
HasInvalidError
err
HasConnectionPool
env
,
,
HasConfig
env
HasSettings
env
,
,
HasConnectionPool
env
RepoCmdM
env
err
m
)
,
HasSettings
env
,
RepoCmdM
env
err
m
)
=>
TabType
=>
TabType
->
ListId
->
ListId
->
Versioned
NgramsTablePatch
->
Versioned
NgramsTablePatch
...
@@ -668,9 +671,10 @@ getTableNgramsDoc dId tabType listId limit_ offset listType minSize maxSize orde
...
@@ -668,9 +671,10 @@ getTableNgramsDoc dId tabType listId limit_ offset listType minSize maxSize orde
apiNgramsTableCorpus
::
(
RepoCmdM
env
err
m
apiNgramsTableCorpus
::
(
RepoCmdM
env
err
m
,
HasNodeError
err
,
HasNodeError
err
,
HasInvalidError
err
,
HasTreeError
err
,
HasInvalidError
err
,
HasConnectionPool
env
,
HasConnectionPool
env
,
HasConfig
env
,
HasConfig
env
,
HasSettings
env
,
HasSettings
env
...
@@ -681,9 +685,10 @@ apiNgramsTableCorpus cId = getTableNgramsCorpus cId
...
@@ -681,9 +685,10 @@ apiNgramsTableCorpus cId = getTableNgramsCorpus cId
:<|>
scoresRecomputeTableNgrams
cId
:<|>
scoresRecomputeTableNgrams
cId
:<|>
getTableNgramsVersion
cId
:<|>
getTableNgramsVersion
cId
apiNgramsTableDoc
::
(
RepoCmdM
env
err
m
apiNgramsTableDoc
::
(
RepoCmdM
env
err
m
,
HasNodeError
err
,
HasNodeError
err
,
HasInvalidError
err
,
HasTreeError
err
,
HasInvalidError
err
,
HasConnectionPool
env
,
HasConnectionPool
env
,
HasConfig
env
,
HasConfig
env
,
HasSettings
env
,
HasSettings
env
...
...
src/Gargantext/Core/Text/List.hs
View file @
45d49b0f
...
@@ -14,6 +14,7 @@ Portability : POSIX
...
@@ -14,6 +14,7 @@ Portability : POSIX
module
Gargantext.Core.Text.List
module
Gargantext.Core.Text.List
where
where
import
Control.Lens
(
makeLenses
)
import
Control.Lens
(
makeLenses
)
import
Data.Maybe
(
fromMaybe
,
catMaybes
)
import
Data.Maybe
(
fromMaybe
,
catMaybes
)
import
Data.Ord
(
Down
(
..
))
import
Data.Ord
(
Down
(
..
))
...
@@ -26,23 +27,25 @@ import qualified Data.Map as Map
...
@@ -26,23 +27,25 @@ import qualified Data.Map as Map
import
qualified
Data.Set
as
Set
import
qualified
Data.Set
as
Set
import
qualified
Data.Text
as
Text
import
qualified
Data.Text
as
Text
import
Gargantext.API.Ngrams.Types
(
NgramsElement
,
mkNgramsElement
,
NgramsTerm
(
..
),
RootParent
(
..
),
mSetFromList
)
-- import Gargantext.API.Ngrams.Tools (getCoocByNgrams', Diagonal(..))
-- import Gargantext.API.Ngrams.Tools (getCoocByNgrams', Diagonal(..))
import
Gargantext.API.Ngrams.Types
(
NgramsElement
,
mkNgramsElement
,
NgramsTerm
(
..
),
RootParent
(
..
),
mSetFromList
)
import
Gargantext.Core
(
Lang
(
..
))
import
Gargantext.Core
(
Lang
(
..
))
import
Gargantext.Core.Types
(
ListType
(
..
),
MasterCorpusId
,
UserCorpusId
)
import
Gargantext.Core.Text
(
size
)
import
Gargantext.Database.Admin.Types.Node
(
NodeId
)
import
Gargantext.Core.Text.List.Learn
(
Model
(
..
))
import
Gargantext.Core.Text.List.Social
(
flowSocialList
)
import
Gargantext.Core.Text.Metrics
(
scored'
,
Scored
(
..
),
normalizeGlobal
,
normalizeLocal
)
import
Gargantext.Core.Text.Metrics
(
scored'
,
Scored
(
..
),
normalizeGlobal
,
normalizeLocal
)
import
Gargantext.Core.Types
(
ListType
(
..
),
MasterCorpusId
,
UserCorpusId
)
import
Gargantext.Core.Types.Individu
(
User
(
..
))
import
Gargantext.Database.Action.Metrics.NgramsByNode
(
ngramsGroup
,
getNodesByNgramsUser
,
groupNodesByNgramsWith
,
getNodesByNgramsOnlyUser
)
import
Gargantext.Database.Action.Metrics.NgramsByNode
(
ngramsGroup
,
getNodesByNgramsUser
,
groupNodesByNgramsWith
,
getNodesByNgramsOnlyUser
)
import
Gargantext.Database.Action.Metrics.TFICF
(
getTficf
)
import
Gargantext.Database.Action.Metrics.TFICF
(
getTficf
)
import
Gargantext.API.Ngrams.Types
(
RepoCmdM
)
import
Gargantext.Database.Admin.Types.Node
(
NodeId
)
import
Gargantext.Database.Prelude
(
Cmd
,
CmdM
)
import
Gargantext.Database.Query.Table.Node
(
defaultList
)
import
Gargantext.Database.Query.Table.Node
(
defaultList
)
import
Gargantext.Database.Query.Table.Node.Error
(
HasNodeError
())
import
Gargantext.Database.Query.Table.Node.Error
(
HasNodeError
())
import
Gargantext.Database.
Prelude
(
Cmd
)
import
Gargantext.Database.
Query.Tree.Error
(
HasTreeError
)
import
Gargantext.Database.Schema.Ngrams
(
NgramsType
(
..
))
import
Gargantext.Database.Schema.Ngrams
(
NgramsType
(
..
))
import
Gargantext.Prelude
import
Gargantext.Prelude
import
Gargantext.Core.Text
(
size
)
import
Gargantext.Core.Text.List.Learn
(
Model
(
..
))
-- import Gargantext.Core.Text.Metrics (takeScored)
data
NgramsListBuilder
=
BuilderStepO
{
stemSize
::
!
Int
data
NgramsListBuilder
=
BuilderStepO
{
stemSize
::
!
Int
...
@@ -63,26 +66,37 @@ data NgramsListBuilder = BuilderStepO { stemSize :: !Int
...
@@ -63,26 +66,37 @@ data NgramsListBuilder = BuilderStepO { stemSize :: !Int
data
StopSize
=
StopSize
{
unStopSize
::
!
Int
}
data
StopSize
=
StopSize
{
unStopSize
::
!
Int
}
-- | TODO improve grouping functions of Authors, Sources, Institutes..
-- | TODO improve grouping functions of Authors, Sources, Institutes..
buildNgramsLists
::
HasNodeError
err
buildNgramsLists
::
(
RepoCmdM
env
err
m
=>
Lang
,
CmdM
env
err
m
,
HasTreeError
err
,
HasNodeError
err
)
=>
User
->
Lang
->
Int
->
Int
->
Int
->
Int
->
StopSize
->
StopSize
->
UserCorpusId
->
UserCorpusId
->
MasterCorpusId
->
MasterCorpusId
->
Cmd
err
(
Map
NgramsType
[
NgramsElement
])
->
m
(
Map
NgramsType
[
NgramsElement
])
buildNgramsLists
l
n
m
s
uCid
mCid
=
do
buildNgramsLists
user
l
n
m
s
uCid
mCid
=
do
ngTerms
<-
buildNgramsTermsList
l
n
m
s
uCid
mCid
ngTerms
<-
buildNgramsTermsList
user
l
n
m
s
uCid
mCid
othersTerms
<-
mapM
(
buildNgramsOthersList
uCid
identity
)
othersTerms
<-
mapM
(
buildNgramsOthersList
u
ser
u
Cid
identity
)
[
Authors
,
Sources
,
Institutes
]
[
Authors
,
Sources
,
Institutes
]
pure
$
Map
.
unions
$
othersTerms
<>
[
ngTerms
]
pure
$
Map
.
unions
$
othersTerms
<>
[
ngTerms
]
buildNgramsOthersList
::
UserCorpusId
buildNgramsOthersList
::
(
-- RepoCmdM env err m
-- , CmdM env err m
HasNodeError
err
-- , HasTreeError err
)
=>
User
->
UserCorpusId
->
(
Text
->
Text
)
->
(
Text
->
Text
)
->
NgramsType
->
NgramsType
->
Cmd
err
(
Map
NgramsType
[
NgramsElement
])
->
Cmd
err
(
Map
NgramsType
[
NgramsElement
])
buildNgramsOthersList
uCid
groupIt
nt
=
do
buildNgramsOthersList
u
ser
u
Cid
groupIt
nt
=
do
ngs
<-
groupNodesByNgramsWith
groupIt
<$>
getNodesByNgramsUser
uCid
nt
ngs
<-
groupNodesByNgramsWith
groupIt
<$>
getNodesByNgramsUser
uCid
nt
let
let
...
@@ -105,15 +119,20 @@ buildNgramsOthersList uCid groupIt nt = do
...
@@ -105,15 +119,20 @@ buildNgramsOthersList uCid groupIt nt = do
)]
)]
-- TODO use ListIds
-- TODO use ListIds
buildNgramsTermsList
::
HasNodeError
err
buildNgramsTermsList
::
(
HasNodeError
err
=>
Lang
,
CmdM
env
err
m
->
Int
,
RepoCmdM
env
err
m
->
Int
,
HasTreeError
err
->
StopSize
)
->
UserCorpusId
=>
User
->
MasterCorpusId
->
Lang
->
Cmd
err
(
Map
NgramsType
[
NgramsElement
])
->
Int
buildNgramsTermsList
l
n
m
s
uCid
mCid
=
do
->
Int
->
StopSize
->
UserCorpusId
->
MasterCorpusId
->
m
(
Map
NgramsType
[
NgramsElement
])
buildNgramsTermsList
user
l
n
m
s
uCid
mCid
=
do
-- Computing global speGen score
-- Computing global speGen score
allTerms
<-
Map
.
toList
<$>
getTficf
uCid
mCid
NgramsTerms
allTerms
<-
Map
.
toList
<$>
getTficf
uCid
mCid
NgramsTerms
...
@@ -122,6 +141,8 @@ buildNgramsTermsList l n m s uCid mCid = do
...
@@ -122,6 +141,8 @@ buildNgramsTermsList l n m s uCid mCid = do
-- printDebug "tail candidates" (List.take 10 $ List.reverse $ allTerms)
-- printDebug "tail candidates" (List.take 10 $ List.reverse $ allTerms)
-- First remove stops terms
-- First remove stops terms
mapSocialList
<-
flowSocialList
user
NgramsTerms
(
Set
.
fromList
$
map
fst
allTerms
)
let
let
-- stopTerms ignored for now (need to be tagged already)
-- stopTerms ignored for now (need to be tagged already)
(
_stopTerms
,
candidateTerms
)
=
List
.
partition
((
isStopTerm
s
)
.
fst
)
allTerms
(
_stopTerms
,
candidateTerms
)
=
List
.
partition
((
isStopTerm
s
)
.
fst
)
allTerms
...
...
src/Gargantext/Core/Text/List/Social.hs
View file @
45d49b0f
...
@@ -6,8 +6,6 @@ License : AGPL + CECILL v3
...
@@ -6,8 +6,6 @@ License : AGPL + CECILL v3
Maintainer : team@gargantext.org
Maintainer : team@gargantext.org
Stability : experimental
Stability : experimental
Portability : POSIX
Portability : POSIX
-}
-}
module
Gargantext.Core.Text.List.Social
module
Gargantext.Core.Text.List.Social
...
@@ -28,7 +26,6 @@ import Data.Maybe (fromMaybe)
...
@@ -28,7 +26,6 @@ import Data.Maybe (fromMaybe)
import
Data.Map
(
Map
)
import
Data.Map
(
Map
)
import
Data.Set
(
Set
)
import
Data.Set
(
Set
)
import
Data.Text
(
Text
)
import
Data.Text
(
Text
)
import
Gargantext.API.Ngrams
import
Gargantext.API.Ngrams.Tools
-- (getListNgrams)
import
Gargantext.API.Ngrams.Tools
-- (getListNgrams)
import
Gargantext.API.Ngrams.Types
import
Gargantext.API.Ngrams.Types
import
Gargantext.Core.Types.Main
import
Gargantext.Core.Types.Main
...
@@ -39,12 +36,12 @@ import qualified Data.Set as Set
...
@@ -39,12 +36,12 @@ import qualified Data.Set as Set
flowSocialList
::
(
RepoCmdM
env
err
m
flowSocialList
::
(
RepoCmdM
env
err
m
,
CmdM
env
err
m
,
CmdM
env
err
m
,
HasNodeError
err
,
HasNodeError
err
,
HasTreeError
err
,
HasTreeError
err
)
)
=>
User
->
NgramsType
->
Set
Text
=>
User
->
NgramsType
->
Set
Text
->
m
(
Map
ListType
(
Set
Text
))
->
m
(
Map
ListType
(
Set
Text
))
flowSocialList
user
nt
ngrams'
=
do
flowSocialList
user
nt
ngrams'
=
do
privateMapList
<-
flowSocialListByMode
Private
user
nt
ngrams'
privateMapList
<-
flowSocialListByMode
Private
user
nt
ngrams'
sharedMapList
<-
flowSocialListByMode
Shared
user
nt
(
termsByList
CandidateTerm
privateMapList
)
sharedMapList
<-
flowSocialListByMode
Shared
user
nt
(
termsByList
CandidateTerm
privateMapList
)
...
...
src/Gargantext/Database/Action/Flow.hs
View file @
45d49b0f
...
@@ -79,19 +79,19 @@ import Gargantext.Database.Action.Search (searchDocInDatabase)
...
@@ -79,19 +79,19 @@ import Gargantext.Database.Action.Search (searchDocInDatabase)
import
Gargantext.Database.Admin.Config
(
userMaster
,
corpusMasterName
)
import
Gargantext.Database.Admin.Config
(
userMaster
,
corpusMasterName
)
import
Gargantext.Database.Admin.Types.Hyperdata
import
Gargantext.Database.Admin.Types.Hyperdata
import
Gargantext.Database.Admin.Types.Node
-- (HyperdataDocument(..), NodeType(..), NodeId, UserId, ListId, CorpusId, RootId, MasterCorpusId, MasterUserId)
import
Gargantext.Database.Admin.Types.Node
-- (HyperdataDocument(..), NodeType(..), NodeId, UserId, ListId, CorpusId, RootId, MasterCorpusId, MasterUserId)
import
Gargantext.Database.Prelude
import
Gargantext.Database.Query.Table.Ngrams
import
Gargantext.Database.Query.Table.Node
import
Gargantext.Database.Query.Table.Node
import
Gargantext.Database.Query.Table.Node.Document.Insert
-- (insertDocuments, ReturnId(..), addUniqIdsDoc, addUniqIdsContact, ToDbData(..))
import
Gargantext.Database.Query.Table.Node.Document.Insert
-- (insertDocuments, ReturnId(..), addUniqIdsDoc, addUniqIdsContact, ToDbData(..))
import
Gargantext.Database.Query.Tree.Root
(
getOrMkRoot
,
getOrMk_RootWithCorpus
)
import
Gargantext.Database.Query.Table.Node.Error
(
HasNodeError
(
..
))
import
Gargantext.Database.Query.Table.Node.Error
(
HasNodeError
(
..
))
import
Gargantext.Database.Query.Table.Ngrams
import
Gargantext.Database.Query.Table.NodeNgrams
(
listInsertDb
,
getCgramsId
)
import
Gargantext.Database.Query.Table.NodeNgrams
(
listInsertDb
,
getCgramsId
)
import
Gargantext.Database.Query.Table.NodeNodeNgrams2
import
Gargantext.Database.Query.Table.NodeNodeNgrams2
import
Gargantext.Database.
Prelude
import
Gargantext.Database.
Query.Tree.Root
(
getOrMkRoot
,
getOrMk_RootWithCorpus
)
import
Gargantext.Database.Schema.Node
(
NodePoly
(
..
))
import
Gargantext.Database.Schema.Node
(
NodePoly
(
..
))
import
Gargantext.Prelude
import
Gargantext.Prelude
import
Gargantext.Prelude.Crypto.Hash
(
Hash
)
import
Gargantext.Prelude.Crypto.Hash
(
Hash
)
import
qualified
Gargantext.Database.Query.Table.Node.Document.Add
as
Doc
(
add
)
import
qualified
Gargantext.Core.Text.Corpus.API
as
API
import
qualified
Gargantext.Core.Text.Corpus.API
as
API
import
qualified
Gargantext.Database.Query.Table.Node.Document.Add
as
Doc
(
add
)
------------------------------------------------------------------------
------------------------------------------------------------------------
-- TODO use internal with API name (could be old data)
-- TODO use internal with API name (could be old data)
...
@@ -132,12 +132,13 @@ getDataText (InternalOrigin _) _la q _li = do
...
@@ -132,12 +132,13 @@ getDataText (InternalOrigin _) _la q _li = do
pure
$
DataOld
ids
pure
$
DataOld
ids
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
flowDataText
::
FlowCmdM
env
err
m
flowDataText
::
(
FlowCmdM
env
err
m
=>
User
)
->
DataText
=>
User
->
TermType
Lang
->
DataText
->
CorpusId
->
TermType
Lang
->
m
CorpusId
->
CorpusId
->
m
CorpusId
flowDataText
u
(
DataOld
ids
)
tt
cid
=
flowCorpusUser
(
_tt_lang
tt
)
u
(
Right
[
cid
])
corpusType
ids
flowDataText
u
(
DataOld
ids
)
tt
cid
=
flowCorpusUser
(
_tt_lang
tt
)
u
(
Right
[
cid
])
corpusType
ids
where
where
corpusType
=
(
Nothing
::
Maybe
HyperdataCorpus
)
corpusType
=
(
Nothing
::
Maybe
HyperdataCorpus
)
...
@@ -145,7 +146,7 @@ flowDataText u (DataNew txt) tt cid = flowCorpus u (Right [cid]) tt txt
...
@@ -145,7 +146,7 @@ flowDataText u (DataNew txt) tt cid = flowCorpus u (Right [cid]) tt txt
------------------------------------------------------------------------
------------------------------------------------------------------------
-- TODO use proxy
-- TODO use proxy
flowAnnuaire
::
FlowCmdM
env
err
m
flowAnnuaire
::
(
FlowCmdM
env
err
m
)
=>
User
=>
User
->
Either
CorpusName
[
CorpusId
]
->
Either
CorpusName
[
CorpusId
]
->
(
TermType
Lang
)
->
(
TermType
Lang
)
...
@@ -156,7 +157,7 @@ flowAnnuaire u n l filePath = do
...
@@ -156,7 +157,7 @@ flowAnnuaire u n l filePath = do
flow
(
Nothing
::
Maybe
HyperdataAnnuaire
)
u
n
l
docs
flow
(
Nothing
::
Maybe
HyperdataAnnuaire
)
u
n
l
docs
------------------------------------------------------------------------
------------------------------------------------------------------------
flowCorpusFile
::
FlowCmdM
env
err
m
flowCorpusFile
::
(
FlowCmdM
env
err
m
)
=>
User
=>
User
->
Either
CorpusName
[
CorpusId
]
->
Either
CorpusName
[
CorpusId
]
->
Limit
-- Limit the number of docs (for dev purpose)
->
Limit
-- Limit the number of docs (for dev purpose)
...
@@ -181,20 +182,25 @@ flowCorpus :: (FlowCmdM env err m, FlowCorpus a)
...
@@ -181,20 +182,25 @@ flowCorpus :: (FlowCmdM env err m, FlowCorpus a)
flowCorpus
=
flow
(
Nothing
::
Maybe
HyperdataCorpus
)
flowCorpus
=
flow
(
Nothing
::
Maybe
HyperdataCorpus
)
flow
::
(
FlowCmdM
env
err
m
,
FlowCorpus
a
,
MkCorpus
c
)
flow
::
(
FlowCmdM
env
err
m
=>
Maybe
c
,
FlowCorpus
a
->
User
,
MkCorpus
c
->
Either
CorpusName
[
CorpusId
]
)
->
TermType
Lang
=>
Maybe
c
->
[[
a
]]
->
User
->
m
CorpusId
->
Either
CorpusName
[
CorpusId
]
->
TermType
Lang
->
[[
a
]]
->
m
CorpusId
flow
c
u
cn
la
docs
=
do
flow
c
u
cn
la
docs
=
do
-- TODO if public insertMasterDocs else insertUserDocs
-- TODO if public insertMasterDocs else insertUserDocs
ids
<-
traverse
(
insertMasterDocs
c
la
)
docs
ids
<-
traverse
(
insertMasterDocs
c
la
)
docs
flowCorpusUser
(
la
^.
tt_lang
)
u
cn
c
(
concat
ids
)
flowCorpusUser
(
la
^.
tt_lang
)
u
cn
c
(
concat
ids
)
------------------------------------------------------------------------
------------------------------------------------------------------------
flowCorpusUser
::
(
FlowCmdM
env
err
m
,
MkCorpus
c
)
flowCorpusUser
::
(
FlowCmdM
env
err
m
,
MkCorpus
c
)
=>
Lang
=>
Lang
->
User
->
User
->
Either
CorpusName
[
CorpusId
]
->
Either
CorpusName
[
CorpusId
]
...
@@ -214,7 +220,7 @@ flowCorpusUser l user corpusName ctype ids = do
...
@@ -214,7 +220,7 @@ flowCorpusUser l user corpusName ctype ids = do
-- User List Flow
-- User List Flow
(
masterUserId
,
_masterRootId
,
masterCorpusId
)
<-
getOrMk_RootWithCorpus
(
UserName
userMaster
)
(
Left
""
)
ctype
(
masterUserId
,
_masterRootId
,
masterCorpusId
)
<-
getOrMk_RootWithCorpus
(
UserName
userMaster
)
(
Left
""
)
ctype
ngs
<-
buildNgramsLists
l
2
3
(
StopSize
3
)
userCorpusId
masterCorpusId
ngs
<-
buildNgramsLists
user
l
2
3
(
StopSize
3
)
userCorpusId
masterCorpusId
_userListId
<-
flowList_DbRepo
listId
ngs
_userListId
<-
flowList_DbRepo
listId
ngs
_mastListId
<-
getOrMkList
masterCorpusId
masterUserId
_mastListId
<-
getOrMkList
masterCorpusId
masterUserId
-- _ <- insertOccsUpdates userCorpusId mastListId
-- _ <- insertOccsUpdates userCorpusId mastListId
...
...
src/Gargantext/Database/Action/Flow/Types.hs
View file @
45d49b0f
...
@@ -29,6 +29,7 @@ import Gargantext.Core.Text.Terms
...
@@ -29,6 +29,7 @@ import Gargantext.Core.Text.Terms
import
Gargantext.Database.Query.Table.Node.Error
(
HasNodeError
)
import
Gargantext.Database.Query.Table.Node.Error
(
HasNodeError
)
import
Gargantext.Database.Prelude
(
CmdM
)
import
Gargantext.Database.Prelude
(
CmdM
)
import
Gargantext.Database.Query.Table.Node.Document.Insert
import
Gargantext.Database.Query.Table.Node.Document.Insert
import
Gargantext.Database.Query.Tree.Error
(
HasTreeError
)
type
FlowCmdM
env
err
m
=
type
FlowCmdM
env
err
m
=
(
CmdM
env
err
m
(
CmdM
env
err
m
...
@@ -36,6 +37,7 @@ type FlowCmdM env err m =
...
@@ -36,6 +37,7 @@ type FlowCmdM env err m =
,
HasNodeError
err
,
HasNodeError
err
,
HasInvalidError
err
,
HasInvalidError
err
,
HasRepoVar
env
,
HasRepoVar
env
,
HasTreeError
err
)
)
type
FlowCorpus
a
=
(
AddUniqId
a
type
FlowCorpus
a
=
(
AddUniqId
a
...
...
src/Gargantext/Database/Prelude.hs
View file @
45d49b0f
...
@@ -81,11 +81,8 @@ type CmdM env err m =
...
@@ -81,11 +81,8 @@ type CmdM env err m =
)
)
type
Cmd''
env
err
a
=
forall
m
.
CmdM''
env
err
m
=>
m
a
type
Cmd''
env
err
a
=
forall
m
.
CmdM''
env
err
m
=>
m
a
type
Cmd'
env
err
a
=
forall
m
.
CmdM'
env
err
m
=>
m
a
type
Cmd'
env
err
a
=
forall
m
.
CmdM'
env
err
m
=>
m
a
type
Cmd
err
a
=
forall
m
env
.
CmdM
env
err
m
=>
m
a
type
Cmd
err
a
=
forall
m
env
.
CmdM
env
err
m
=>
m
a
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment