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
898dca82
Commit
898dca82
authored
Sep 07, 2020
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[DB.Schema.Node] hash_id column added to Node only
parent
a891c1f5
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
25 additions
and
21 deletions
+25
-21
Types.hs
src/Gargantext/Core/Flow/Types.hs
+0
-1
Main.hs
src/Gargantext/Core/Types/Main.hs
+0
-2
Utils.hs
src/Gargantext/Database/Action/Flow/Utils.hs
+1
-1
Node.hs
src/Gargantext/Database/Admin/Types/Node.hs
+7
-6
Node.hs
src/Gargantext/Database/Query/Table/Node.hs
+8
-8
Children.hs
src/Gargantext/Database/Query/Table/Node/Children.hs
+1
-1
UpdateOpaleye.hs
src/Gargantext/Database/Query/Table/Node/UpdateOpaleye.hs
+2
-2
Node.hs
src/Gargantext/Database/Schema/Node.hs
+6
-0
No files found.
src/Gargantext/Core/Flow/Types.hs
View file @
898dca82
...
...
@@ -19,7 +19,6 @@ import Data.Map (Map)
import
Data.Maybe
(
Maybe
)
-- import Control.Applicative
import
Gargantext.Core.Text
(
HasText
(
..
))
import
Gargantext.Core.Types.Main
(
HashId
)
import
Gargantext.Database.Admin.Types.Hyperdata
import
Gargantext.Database.Admin.Types.Node
import
Gargantext.Database.Schema.Ngrams
(
Ngrams
,
NgramsType
)
...
...
src/Gargantext/Core/Types/Main.hs
View file @
898dca82
...
...
@@ -49,8 +49,6 @@ instance ToSchema NodeTree where
--data Classification = Favorites | MyClassifcation
type
HashId
=
Text
type
TypeId
=
Int
-- TODO multiple ListType declaration, remove it
data
ListType
=
StopTerm
|
CandidateTerm
|
MapTerm
...
...
src/Gargantext/Database/Action/Flow/Utils.hs
View file @
898dca82
...
...
@@ -49,7 +49,7 @@ toMaps :: Hyperdata a
->
Map
(
NgramsT
Ngrams
)
(
Map
NodeId
Int
)
toMaps
fun
ns
=
mapNodeIdNgrams
$
documentIdWithNgrams
fun
ns'
where
ns'
=
map
(
\
(
Node
nId
_
_
_
_
_
json
)
->
DocumentWithId
nId
json
)
ns
ns'
=
map
(
\
(
Node
nId
_
_
_
_
_
_
json
)
->
DocumentWithId
nId
json
)
ns
mapNodeIdNgrams
::
Hyperdata
a
=>
[
DocumentIdWithNgrams
a
]
...
...
src/Gargantext/Database/Admin/Types/Node.hs
View file @
898dca82
...
...
@@ -51,10 +51,10 @@ import Gargantext.Prelude
type
UserId
=
Int
type
MasterUserId
=
UserId
type
HashId
=
Text
------------------------------------------------------------------------
-- | NodePoly indicates that Node has a Polymorphism Type
type
Node
json
=
NodePoly
NodeId
NodeTypeId
UserId
(
Maybe
ParentId
)
NodeName
UTCTime
json
type
Node
json
=
NodePoly
NodeId
HashId
NodeTypeId
UserId
(
Maybe
ParentId
)
NodeName
UTCTime
json
-- | NodeSearch (queries)
-- type NodeSearch json = NodePolySearch NodeId NodeTypeId UserId (Maybe ParentId) NodeName UTCTime json (Maybe TSVector)
...
...
@@ -62,7 +62,7 @@ type Node json = NodePoly NodeId NodeTypeId UserId (Maybe ParentId) NodeName U
------------------------------------------------------------------------
instance
(
Typeable
hyperdata
,
ToSchema
hyperdata
)
=>
ToSchema
(
NodePoly
NodeId
NodeTypeId
ToSchema
(
NodePoly
NodeId
HashId
NodeTypeId
(
Maybe
UserId
)
ParentId
NodeName
UTCTime
hyperdata
...
...
@@ -70,7 +70,7 @@ instance (Typeable hyperdata, ToSchema hyperdata) =>
declareNamedSchema
=
wellNamedSchema
"_node_"
instance
(
Typeable
hyperdata
,
ToSchema
hyperdata
)
=>
ToSchema
(
NodePoly
NodeId
NodeTypeId
ToSchema
(
NodePoly
NodeId
HashId
NodeTypeId
UserId
(
Maybe
ParentId
)
NodeName
UTCTime
hyperdata
...
...
@@ -95,15 +95,16 @@ instance (Typeable hyperdata, ToSchema hyperdata) =>
instance
(
Arbitrary
hyperdata
,
Arbitrary
nodeId
,
Arbitrary
hashId
,
Arbitrary
nodeTypeId
,
Arbitrary
userId
,
Arbitrary
nodeParentId
)
=>
Arbitrary
(
NodePoly
nodeId
nodeTypeId
userId
nodeParentId
)
=>
Arbitrary
(
NodePoly
nodeId
hashId
nodeTypeId
userId
nodeParentId
NodeName
UTCTime
hyperdata
)
where
--arbitrary = Node 1 1 (Just 1) 1 "name" (jour 2018 01 01) (arbitrary) (Just "")
arbitrary
=
Node
<$>
arbitrary
<*>
arbitrary
<*>
arbitrary
<*>
arbitrary
<*>
arbitrary
<*>
arbitrary
<*>
arbitrary
<*>
arbitrary
<*>
arbitrary
instance
(
Arbitrary
hyperdata
,
Arbitrary
nodeId
...
...
src/Gargantext/Database/Query/Table/Node.hs
View file @
898dca82
...
...
@@ -73,7 +73,7 @@ selectNodesWith parentId maybeNodeType maybeOffset maybeLimit =
selectNodesWith'
::
ParentId
->
Maybe
NodeType
->
Query
NodeRead
selectNodesWith'
parentId
maybeNodeType
=
proc
()
->
do
node
<-
(
proc
()
->
do
row
@
(
Node
_
typeId
_
parentId'
_
_
_
)
<-
queryNodeTable
-<
()
row
@
(
Node
_
_
typeId
_
parentId'
_
_
_
)
<-
queryNodeTable
-<
()
restrict
-<
parentId'
.==
(
pgNodeId
parentId
)
let
typeId'
=
maybe
0
nodeTypeId
maybeNodeType
...
...
@@ -87,12 +87,12 @@ selectNodesWith' parentId maybeNodeType = proc () -> do
deleteNode
::
NodeId
->
Cmd
err
Int
deleteNode
n
=
mkCmd
$
\
conn
->
fromIntegral
<$>
runDelete
conn
nodeTable
(
\
(
Node
n_id
_
_
_
_
_
_
)
->
n_id
.==
pgNodeId
n
)
(
\
(
Node
n_id
_
_
_
_
_
_
_
)
->
n_id
.==
pgNodeId
n
)
deleteNodes
::
[
NodeId
]
->
Cmd
err
Int
deleteNodes
ns
=
mkCmd
$
\
conn
->
fromIntegral
<$>
runDelete
conn
nodeTable
(
\
(
Node
n_id
_
_
_
_
_
_
)
->
in_
((
map
pgNodeId
ns
))
n_id
)
(
\
(
Node
n_id
_
_
_
_
_
_
_
)
->
in_
((
map
pgNodeId
ns
))
n_id
)
-- TODO: NodeType should match with `a'
getNodesWith
::
JSONB
a
=>
NodeId
->
proxy
a
->
Maybe
NodeType
...
...
@@ -153,13 +153,13 @@ getCorporaWithParentId n = runOpaQuery $ selectNodesWith' n (Just NodeCorpus)
------------------------------------------------------------------------
selectNodesWithParentID
::
NodeId
->
Query
NodeRead
selectNodesWithParentID
n
=
proc
()
->
do
row
@
(
Node
_
_
_
parent_id
_
_
_
)
<-
queryNodeTable
-<
()
row
@
(
Node
_
_
_
_
parent_id
_
_
_
)
<-
queryNodeTable
-<
()
restrict
-<
parent_id
.==
(
pgNodeId
n
)
returnA
-<
row
selectNodesWithType
::
Column
PGInt4
->
Query
NodeRead
selectNodesWithType
type_id
=
proc
()
->
do
row
@
(
Node
_
tn
_
_
_
_
_
)
<-
queryNodeTable
-<
()
row
@
(
Node
_
_
tn
_
_
_
_
_
)
<-
queryNodeTable
-<
()
restrict
-<
tn
.==
type_id
returnA
-<
row
...
...
@@ -205,7 +205,7 @@ node :: (ToJSON a, Hyperdata a)
->
UserId
->
NodeWrite
node
nodeType
name
hyperData
parentId
userId
=
Node
Nothing
Node
Nothing
Nothing
(
pgInt4
typeId
)
(
pgInt4
userId
)
(
pgNodeId
<$>
parentId
)
...
...
@@ -238,7 +238,7 @@ insertNodes' ns = mkCmd $ \conn -> runInsert_ conn
insertNodesR
::
[
NodeWrite
]
->
Cmd
err
[
NodeId
]
insertNodesR
ns
=
mkCmd
$
\
conn
->
runInsert_
conn
(
Insert
nodeTable
ns
(
rReturning
(
\
(
Node
i
_
_
_
_
_
_
)
->
i
))
Nothing
)
runInsert_
conn
(
Insert
nodeTable
ns
(
rReturning
(
\
(
Node
i
_
_
_
_
_
_
_
)
->
i
))
Nothing
)
insertNodesWithParent
::
Maybe
ParentId
->
[
NodeWrite
]
->
Cmd
err
Int64
insertNodesWithParent
pid
ns
=
insertNodes
(
set
node_parentId
(
pgNodeId
<$>
pid
)
<$>
ns
)
...
...
@@ -251,7 +251,7 @@ insertNodesWithParentR pid ns = insertNodesR (set node_parentId (pgNodeId <$> pi
-- needs a Temporary type between Node' and NodeWriteT
node2table
::
UserId
->
Maybe
ParentId
->
Node'
->
NodeWrite
node2table
uid
pid
(
Node'
nt
txt
v
[]
)
=
Node
Nothing
(
pgInt4
$
nodeTypeId
nt
)
(
pgInt4
uid
)
(
fmap
pgNodeId
pid
)
(
pgStrictText
txt
)
Nothing
(
pgStrictJSONB
$
cs
$
encode
v
)
node2table
uid
pid
(
Node'
nt
txt
v
[]
)
=
Node
Nothing
Nothing
(
pgInt4
$
nodeTypeId
nt
)
(
pgInt4
uid
)
(
fmap
pgNodeId
pid
)
(
pgStrictText
txt
)
Nothing
(
pgStrictJSONB
$
cs
$
encode
v
)
node2table
_
_
(
Node'
_
_
_
_
)
=
panic
"node2table: should not happen, Tree insert not implemented yet"
...
...
src/Gargantext/Database/Query/Table/Node/Children.hs
View file @
898dca82
...
...
@@ -72,7 +72,7 @@ selectChildren :: ParentId
->
Maybe
NodeType
->
Query
NodeRead
selectChildren
parentId
maybeNodeType
=
proc
()
->
do
row
@
(
Node
nId
typeName
_
parent_id
_
_
_
)
<-
queryNodeTable
-<
()
row
@
(
Node
nId
_
typeName
_
parent_id
_
_
_
)
<-
queryNodeTable
-<
()
(
NodeNode
n1id
n2id
_
_
)
<-
queryNodeNodeTable
-<
()
let
nodeType
=
maybe
0
nodeTypeId
maybeNodeType
...
...
src/Gargantext/Database/Query/Table/Node/UpdateOpaleye.hs
View file @
898dca82
...
...
@@ -30,8 +30,8 @@ updateHyperdata i h = mkCmd $ \c -> runUpdate_ c (updateHyperdataQuery i h)
updateHyperdataQuery
::
ToJSON
a
=>
NodeId
->
a
->
Update
Int64
updateHyperdataQuery
i
h
=
Update
{
uTable
=
nodeTable
,
uUpdateWith
=
updateEasy
(
\
(
Node
_ni
_nt
_nu
_np
_nn
_nd
_h
)
->
Node
_ni
_nt
_nu
_np
_nn
_nd
h'
,
uUpdateWith
=
updateEasy
(
\
(
Node
_ni
_n
h
_n
t
_nu
_np
_nn
_nd
_h
)
->
Node
_ni
_n
h
_n
t
_nu
_np
_nn
_nd
h'
)
,
uWhere
=
(
\
row
->
_node_id
row
.==
pgNodeId
i
)
,
uReturning
=
rCount
...
...
src/Gargantext/Database/Schema/Node.hs
View file @
898dca82
...
...
@@ -26,6 +26,7 @@ import Prelude hiding (null, id, map, sum)
------------------------------------------------------------------------
-- Main polymorphic Node definition
data
NodePoly
id
hash_id
typename
userId
parentId
...
...
@@ -33,6 +34,7 @@ data NodePoly id
date
hyperdata
=
Node
{
_node_id
::
!
id
,
_node_hash_id
::
!
hash_id
,
_node_typename
::
!
typename
,
_node_userId
::
!
userId
...
...
@@ -54,6 +56,7 @@ $(makeLensesWith abbreviatedFields ''NodePoly)
nodeTable
::
Table
NodeWrite
NodeRead
nodeTable
=
Table
"nodes"
(
pNode
Node
{
_node_id
=
optional
"id"
,
_node_hash_id
=
optional
"hash_id"
,
_node_typename
=
required
"typename"
,
_node_userId
=
required
"user_id"
...
...
@@ -70,6 +73,7 @@ queryNodeTable :: Query NodeRead
queryNodeTable
=
queryTable
nodeTable
------------------------------------------------------------------------
type
NodeWrite
=
NodePoly
(
Maybe
(
Column
PGInt4
)
)
(
Maybe
(
Column
PGText
)
)
(
Column
PGInt4
)
(
Column
PGInt4
)
(
Maybe
(
Column
PGInt4
)
)
...
...
@@ -78,6 +82,7 @@ type NodeWrite = NodePoly (Maybe (Column PGInt4) )
(
Column
PGJsonb
)
type
NodeRead
=
NodePoly
(
Column
PGInt4
)
(
Column
PGText
)
(
Column
PGInt4
)
(
Column
PGInt4
)
(
Column
PGInt4
)
...
...
@@ -86,6 +91,7 @@ type NodeRead = NodePoly (Column PGInt4 )
(
Column
PGJsonb
)
type
NodeReadNull
=
NodePoly
(
Column
(
Nullable
PGInt4
))
(
Column
(
Nullable
PGText
))
(
Column
(
Nullable
PGInt4
))
(
Column
(
Nullable
PGInt4
))
(
Column
(
Nullable
PGInt4
))
...
...
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