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
147
Issues
147
List
Board
Labels
Milestones
Merge Requests
6
Merge Requests
6
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
f9eeab02
Commit
f9eeab02
authored
Dec 08, 2018
by
Alexandre Delanoë
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Database] Utils, reader Monad utils mainly.
parent
192f2030
Pipeline
#49
canceled with stage
Changes
17
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
58 additions
and
65 deletions
+58
-65
Node.hs
src/Gargantext/API/Node.hs
+2
-4
Bashql.hs
src/Gargantext/Database/Bashql.hs
+1
-1
Facet.hs
src/Gargantext/Database/Facet.hs
+1
-0
Flow.hs
src/Gargantext/Database/Flow.hs
+2
-1
Pairing.hs
src/Gargantext/Database/Flow/Pairing.hs
+1
-1
Utils.hs
src/Gargantext/Database/Flow/Utils.hs
+1
-1
Children.hs
src/Gargantext/Database/Node/Children.hs
+1
-0
Add.hs
src/Gargantext/Database/Node/Document/Add.hs
+1
-1
Insert.hs
src/Gargantext/Database/Node/Document/Insert.hs
+1
-1
Root.hs
src/Gargantext/Database/Root.hs
+1
-1
Ngrams.hs
src/Gargantext/Database/Schema/Ngrams.hs
+6
-5
Node.hs
src/Gargantext/Database/Schema/Node.hs
+1
-27
NodeNgram.hs
src/Gargantext/Database/Schema/NodeNgram.hs
+1
-1
NodeNgramsNgrams.hs
src/Gargantext/Database/Schema/NodeNgramsNgrams.hs
+1
-1
NodeNode.hs
src/Gargantext/Database/Schema/NodeNode.hs
+1
-1
User.hs
src/Gargantext/Database/Schema/User.hs
+1
-1
Utils.hs
src/Gargantext/Database/Utils.hs
+35
-18
No files found.
src/Gargantext/API/Node.hs
View file @
f9eeab02
...
...
@@ -51,10 +51,8 @@ import Servant
import
Gargantext.API.Ngrams
(
TabType
(
..
),
TableNgramsApi
,
TableNgramsApiGet
,
tableNgramsPatch
,
getTableNgrams
,
NgramsIdPatchsFeed
,
NgramsIdPatchsBack
,
NgramsTable
)
import
Gargantext.Prelude
import
Gargantext.Database.Types.Node
import
Gargantext.Database.Schema.Node
(
runCmd
,
getNodesWithParentId
,
getNode
,
deleteNode
,
deleteNodes
,
mk
,
JSONB
)
import
Gargantext.Database.Utils
(
runCmd
)
import
Gargantext.Database.Schema.Node
(
getNodesWithParentId
,
getNode
,
deleteNode
,
deleteNodes
,
mk
,
JSONB
)
import
Gargantext.Database.Node.Children
(
getChildren
)
import
qualified
Gargantext.Database.Node.Update
as
U
(
update
,
Update
(
..
))
import
Gargantext.Database.Facet
(
FacetDoc
,
runViewDocuments'
,
OrderBy
(
..
),
FacetChart
,
runViewAuthorsDoc
)
...
...
src/Gargantext/Database/Bashql.hs
View file @
f9eeab02
...
...
@@ -80,7 +80,7 @@ import Data.Text (Text)
import
Data.List
(
concat
,
last
)
import
Gargantext.Core.Types
import
Gargantext.Database.Utils
(
connectGargandb
)
import
Gargantext.Database.Utils
(
connectGargandb
,
Cmd
(
..
),
runCmd
,
mkCmd
)
import
Gargantext.Database.Schema.Node
import
qualified
Gargantext.Database.Node.Update
as
U
(
Update
(
..
),
update
)
import
Gargantext.Prelude
...
...
src/Gargantext/Database/Facet.hs
View file @
f9eeab02
...
...
@@ -47,6 +47,7 @@ import Gargantext.Database.Schema.Ngrams
import
Gargantext.Database.Schema.Node
import
Gargantext.Database.Schema.NodeNgram
import
Gargantext.Database.Schema.NodeNode
import
Gargantext.Database.Utils
import
Gargantext.Database.Queries.Join
import
Gargantext.Database.Queries.Filter
import
Opaleye
...
...
src/Gargantext/Database/Flow.hs
View file @
f9eeab02
...
...
@@ -28,7 +28,7 @@ import Gargantext.Core.Types (NodePoly(..), ListType(..), listTypeId)
import
Gargantext.Database.Bashql
(
runCmd'
)
-- , del)
import
Gargantext.Database.Config
(
userMaster
,
userArbitrary
,
corpusMasterName
)
import
Gargantext.Database.Schema.Ngrams
(
insertNgrams
,
Ngrams
(
..
),
NgramsT
(
..
),
NgramsIndexed
(
..
),
indexNgramsT
,
NgramsType
(
..
),
text2ngrams
)
import
Gargantext.Database.Schema.Node
(
mkRoot
,
mkCorpus
,
Cmd
(
..
),
mkList
,
mkGraph
,
mkDashboard
,
mkAnnuaire
,
getCorporaWithParentId'
)
import
Gargantext.Database.Schema.Node
(
mkRoot
,
mkCorpus
,
mkList
,
mkGraph
,
mkDashboard
,
mkAnnuaire
,
getCorporaWithParentId'
)
import
Gargantext.Database.Root
(
getRootCmd
)
import
Gargantext.Database.Types.Node
(
NodeType
(
..
),
NodeId
)
import
Gargantext.Database.Node.Document.Add
(
add
)
...
...
@@ -36,6 +36,7 @@ import Gargantext.Database.Node.Document.Insert (insertDocuments, ReturnId(..),
import
Gargantext.Database.Schema.NodeNgram
(
NodeNgramPoly
(
..
),
insertNodeNgrams
)
import
Gargantext.Database.Schema.NodeNgramsNgrams
(
NodeNgramsNgramsPoly
(
..
),
insertNodeNgramsNgramsNew
)
import
Gargantext.Database.Types.Node
(
HyperdataDocument
(
..
))
import
Gargantext.Database.Utils
(
Cmd
(
..
))
--import Gargantext.Database.Node.Contact (HyperdataContact(..))
import
Gargantext.Database.Schema.User
(
getUser
,
UserLight
(
..
))
import
Gargantext.Core.Types.Individu
(
Username
)
...
...
src/Gargantext/Database/Flow/Pairing.hs
View file @
f9eeab02
...
...
@@ -36,7 +36,7 @@ import Gargantext.Database.Schema.Ngrams -- (NgramsType(..))
--import Gargantext.Database.Types.Node -- (Hyperdata(..))
import
Gargantext.Database.Node.Contact
import
Gargantext.Database.Flow.Utils
import
Gargantext.Database.
Schema.Node
(
Cmd
,
mkCmd
)
import
Gargantext.Database.
Utils
(
Cmd
,
mkCmd
)
import
Gargantext.Database.Node.Children
import
Gargantext.Core.Types.Main
import
Gargantext.Core.Types
(
NodeType
(
..
))
...
...
src/Gargantext/Database/Flow/Utils.hs
View file @
f9eeab02
...
...
@@ -20,7 +20,7 @@ import qualified Data.Map as DM
import
Gargantext.Prelude
import
Gargantext.Database.Schema.Ngrams
import
Gargantext.Database.Types.Node
(
NodeId
,
Node
,
NodePoly
(
..
),
Hyperdata
)
import
Gargantext.Database.
Schema.Node
--
(Cmd)
import
Gargantext.Database.
Utils
(
Cmd
)
import
Gargantext.Database.Schema.NodeNgram
toMaps
::
Hyperdata
a
=>
(
a
->
Map
(
NgramsT
Ngrams
)
Int
)
->
[
Node
a
]
->
Map
(
NgramsT
Ngrams
)
(
Map
NodeId
Int
)
...
...
src/Gargantext/Database/Node/Children.hs
View file @
f9eeab02
...
...
@@ -21,6 +21,7 @@ import Database.PostgreSQL.Simple (Connection)
import
Opaleye
import
Gargantext.Core.Types
import
Gargantext.Database.Schema.Node
import
Gargantext.Database.Utils
import
Gargantext.Database.Schema.NodeNode
import
Gargantext.Database.Config
(
nodeTypeId
)
import
Gargantext.Database.Queries.Filter
...
...
src/Gargantext/Database/Node/Document/Add.hs
View file @
f9eeab02
...
...
@@ -32,7 +32,7 @@ import Database.PostgreSQL.Simple.Types (Values(..), QualifiedIdentifier(..))
import
Data.Text
(
Text
)
import
Gargantext.Database.
Schema.Node
(
mkCmd
,
Cmd
(
..
))
import
Gargantext.Database.
Utils
(
mkCmd
,
Cmd
(
..
))
import
Gargantext.Database.Types.Node
import
Gargantext.Prelude
...
...
src/Gargantext/Database/Node/Document/Insert.hs
View file @
f9eeab02
...
...
@@ -74,7 +74,7 @@ import Database.PostgreSQL.Simple.ToRow (ToRow(..))
import
Database.PostgreSQL.Simple.Types
(
Values
(
..
),
QualifiedIdentifier
(
..
))
import
GHC.Generics
(
Generic
)
import
Gargantext.Database.Config
(
nodeTypeId
)
import
Gargantext.Database.
Schema.Node
(
mkCmd
,
Cmd
(
..
))
import
Gargantext.Database.
Utils
(
mkCmd
,
Cmd
(
..
))
import
Gargantext.Database.Node.Contact
-- (HyperdataContact(..), ContactWho(..))
import
Gargantext.Database.Types.Node
import
Gargantext.Prelude
...
...
src/Gargantext/Database/Root.hs
View file @
f9eeab02
...
...
@@ -36,7 +36,7 @@ import Gargantext.Database.Schema.Node (queryNodeTable)
import
Gargantext.Database.Schema.User
(
queryUserTable
,
UserPoly
(
..
))
import
Gargantext.Database.Config
(
nodeTypeId
)
import
Gargantext.Core.Types.Individu
(
Username
)
import
Gargantext.Database.
Schema.Node
(
Cmd
(
..
),
mkCmd
)
import
Gargantext.Database.
Utils
(
Cmd
(
..
),
mkCmd
)
getRootCmd
::
Username
->
Cmd
[
Node
HyperdataUser
]
getRootCmd
u
=
mkCmd
$
\
c
->
getRoot
u
c
...
...
src/Gargantext/Database/Schema/Ngrams.hs
View file @
f9eeab02
...
...
@@ -24,14 +24,13 @@ Ngrams connection to the Database.
module
Gargantext.Database.Schema.Ngrams
where
import
Database.PostgreSQL.Simple
as
DPS
(
Connection
)
import
Data.Profunctor.Product.TH
(
makeAdaptorAndInstance
)
import
Opaleye
import
Control.Lens
(
makeLenses
,
view
)
import
Data.ByteString.Internal
(
ByteString
)
import
Data.Map
(
Map
,
fromList
,
lookup
,
fromListWith
)
import
Data.Profunctor.Product.TH
(
makeAdaptorAndInstance
)
import
Data.Set
(
Set
)
import
Data.Text
(
Text
,
splitOn
)
import
Database.PostgreSQL.Simple
as
DPS
(
Connection
)
import
Database.PostgreSQL.Simple.FromRow
(
fromRow
,
field
)
import
Database.PostgreSQL.Simple.SqlQQ
(
sql
)
import
Database.PostgreSQL.Simple.ToField
(
toField
)
...
...
@@ -39,13 +38,15 @@ import Database.PostgreSQL.Simple.ToRow (toRow)
import
Database.PostgreSQL.Simple.Types
(
Values
(
..
),
QualifiedIdentifier
(
..
))
import
Debug.Trace
(
trace
)
import
GHC.Generics
(
Generic
)
import
Gargantext.Core.Types
(
CorpusId
)
import
Gargantext.Core.Types
-- (fromListTypeId, ListType, NodePoly(Node))
import
Gargantext.Database.Config
(
nodeTypeId
,
userMaster
)
import
Gargantext.Database.Schema.Node
(
mkCmd
,
Cmd
(
..
),
getListsWithParentId
,
getCorporaWithParentId
)
import
Gargantext.Database.Root
(
getRoot
)
import
Gargantext.Core.Types
(
CorpusId
)
import
Gargantext.Database.Types.Node
(
NodeType
)
import
Gargantext.Database.Schema.Node
(
getListsWithParentId
,
getCorporaWithParentId
)
import
Gargantext.Database.Utils
(
mkCmd
,
Cmd
(
..
))
import
Gargantext.Prelude
import
Opaleye
import
Prelude
(
Enum
,
Bounded
,
minBound
,
maxBound
)
import
qualified
Data.Set
as
DS
import
qualified
Database.PostgreSQL.Simple
as
DPS
...
...
src/Gargantext/Database/Schema/Node.hs
View file @
f9eeab02
...
...
@@ -17,7 +17,6 @@ Portability : POSIX
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NoImplicitPrelude #-}
...
...
@@ -25,12 +24,9 @@ Portability : POSIX
module
Gargantext.Database.Schema.Node
where
import
Control.Applicative
(
Applicative
)
import
Control.Arrow
(
returnA
)
import
Control.Lens
(
set
)
import
Control.Lens.TH
(
makeLensesWith
,
abbreviatedFields
)
import
Control.Monad.IO.Class
import
Control.Monad.Reader
import
Data.Aeson
import
Data.ByteString
(
ByteString
)
import
Data.Maybe
(
Maybe
(
..
),
fromMaybe
)
...
...
@@ -44,6 +40,7 @@ import Gargantext.Core (Lang(..))
import
Gargantext.Core.Types
import
Gargantext.Core.Types.Individu
(
Username
)
import
Gargantext.Core.Types.Main
(
UserId
)
import
Gargantext.Database.Utils
import
Gargantext.Database.Config
(
nodeTypeId
)
import
Gargantext.Database.Queries.Filter
(
limit'
,
offset'
)
import
Gargantext.Database.Types.Node
(
NodeType
,
defaultCorpus
,
Hyperdata
)
...
...
@@ -56,29 +53,6 @@ import qualified Data.ByteString as DB
import
qualified
Data.ByteString.Lazy
as
DBL
import
qualified
Data.Profunctor.Product
as
PP
------------------------------------------------------------------------
------------------------------------------------------------------------
{- | Reader Monad reinvented here:
newtype Cmd a = Cmd { unCmd :: Connection -> IO a }
instance Monad Cmd where
return a = Cmd $ \_ -> return a
m >>= f = Cmd $ \c -> do
a <- unCmd m c
unCmd (f a) c
-}
newtype
Cmd
a
=
Cmd
(
ReaderT
Connection
IO
a
)
deriving
(
Functor
,
Applicative
,
Monad
,
MonadReader
Connection
,
MonadIO
)
runCmd
::
Connection
->
Cmd
a
->
IO
a
runCmd
c
(
Cmd
f
)
=
runReaderT
f
c
mkCmd
::
(
Connection
->
IO
a
)
->
Cmd
a
mkCmd
=
Cmd
.
ReaderT
------------------------------------------------------------------------
------------------------------------------------------------------------
instance
FromField
HyperdataAny
where
...
...
src/Gargantext/Database/Schema/NodeNgram.hs
View file @
f9eeab02
...
...
@@ -35,7 +35,7 @@ import Data.Profunctor.Product.TH (makeAdaptorAndInstance)
import
Database.PostgreSQL.Simple.Types
(
Values
(
..
),
QualifiedIdentifier
(
..
))
import
Database.PostgreSQL.Simple.SqlQQ
(
sql
)
import
Gargantext.Core.Types.Main
(
ListId
,
ListTypeId
)
import
Gargantext.Database.
Schema.Node
(
mkCmd
,
Cmd
(
..
))
import
Gargantext.Database.
Utils
(
mkCmd
,
Cmd
(
..
))
import
Gargantext.Prelude
import
Opaleye
import
qualified
Database.PostgreSQL.Simple
as
PGS
(
Connection
,
query
,
Only
(
..
))
...
...
src/Gargantext/Database/Schema/NodeNgramsNgrams.hs
View file @
f9eeab02
...
...
@@ -37,7 +37,7 @@ import Data.Maybe (Maybe)
import
Data.Profunctor.Product.TH
(
makeAdaptorAndInstance
)
import
Database.PostgreSQL.Simple.SqlQQ
(
sql
)
import
Database.PostgreSQL.Simple.Types
(
Values
(
..
),
QualifiedIdentifier
(
..
))
import
Gargantext.Database.
Schema.Node
(
mkCmd
,
Cmd
(
..
))
import
Gargantext.Database.
Utils
(
mkCmd
,
Cmd
(
..
))
import
Gargantext.Prelude
import
Opaleye
import
qualified
Database.PostgreSQL.Simple
as
DPS
...
...
src/Gargantext/Database/Schema/NodeNode.hs
View file @
f9eeab02
...
...
@@ -30,7 +30,7 @@ import Database.PostgreSQL.Simple.SqlQQ (sql)
import
Control.Lens.TH
(
makeLensesWith
,
abbreviatedFields
)
import
Data.Maybe
(
Maybe
)
import
Data.Profunctor.Product.TH
(
makeAdaptorAndInstance
)
import
Gargantext.Database.
Schema.Node
(
Cmd
(
..
),
mkCmd
)
import
Gargantext.Database.
Utils
import
Gargantext.Core.Types.Main
(
CorpusId
,
DocId
)
import
Gargantext.Prelude
import
Opaleye
...
...
src/Gargantext/Database/Schema/User.hs
View file @
f9eeab02
...
...
@@ -31,8 +31,8 @@ import Data.Profunctor.Product.TH (makeAdaptorAndInstance)
import
Data.Text
(
Text
)
import
Data.Time
(
UTCTime
)
import
GHC.Show
(
Show
(
..
))
import
Gargantext.Database.Schema.Node
(
Cmd
(
..
),
mkCmd
,
runCmd
)
import
Gargantext.Core.Types.Individu
(
Username
)
import
Gargantext.Database.Utils
import
Gargantext.Prelude
import
Opaleye
...
...
src/Gargantext/Database/Utils.hs
View file @
f9eeab02
...
...
@@ -14,37 +14,54 @@ commentary with @some markup@.
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module
Gargantext.Database.Utils
where
import
qualified
Database.PostgreSQL.Simple
as
PGS
import
Control.Applicative
(
Applicative
)
import
Control.Monad.Reader
import
Data.Aeson
(
Result
(
Error
,
Success
),
fromJSON
,
FromJSON
)
import
Data.Typeable
(
Typeable
)
import
Data.Monoid
((
<>
))
import
Data.Either.Extra
(
Either
(
Left
,
Right
))
import
Database.PostgreSQL.Simple.Internal
(
Field
)
import
qualified
Data.ByteString
as
DB
import
Database.PostgreSQL.Simple.FromField
(
Conversion
,
ResultError
(
ConversionFailed
)
,
fromField
,
returnError
)
import
Data.Ini
(
readIniFile
,
lookupValue
)
import
Data.Maybe
(
maybe
)
import
Data.Monoid
((
<>
))
import
Data.Profunctor.Product.Default
(
Default
)
import
Data.Text
(
unpack
,
pack
)
import
Data.Typeable
(
Typeable
)
import
Data.Word
(
Word16
)
import
Database.PostgreSQL.Simple
(
Connection
,
connect
)
import
Database.PostgreSQL.Simple.FromField
(
Conversion
,
ResultError
(
ConversionFailed
),
fromField
,
returnError
)
import
Database.PostgreSQL.Simple.Internal
(
Field
)
import
Gargantext.Prelude
import
Opaleye
(
Query
,
Unpackspec
,
showSqlForPostgres
)
import
System.IO
(
FilePath
)
import
Text.Read
(
read
)
import
qualified
Data.ByteString
as
DB
import
qualified
Database.PostgreSQL.Simple
as
PGS
-- Utilities
import
Opaleye
(
Query
,
Unpackspec
,
showSqlForPostgres
)
import
Data.Profunctor.Product.Default
(
Default
)
import
Data.Maybe
(
maybe
)
-- TODO add a reader Monad here
-- read this in the init file
------------------------------------------------------------------------
{- | Reader Monad reinvented here:
newtype Cmd a = Cmd { unCmd :: Connection -> IO a }
instance Monad Cmd where
return a = Cmd $ \_ -> return a
m >>= f = Cmd $ \c -> do
a <- unCmd m c
unCmd (f a) c
-}
newtype
Cmd
a
=
Cmd
(
ReaderT
Connection
IO
a
)
deriving
(
Functor
,
Applicative
,
Monad
,
MonadReader
Connection
,
MonadIO
)
runCmd
::
Connection
->
Cmd
a
->
IO
a
runCmd
c
(
Cmd
f
)
=
runReaderT
f
c
mkCmd
::
(
Connection
->
IO
a
)
->
Cmd
a
mkCmd
=
Cmd
.
ReaderT
------------------------------------------------------------------------
databaseParameters
::
FilePath
->
IO
PGS
.
ConnectInfo
databaseParameters
fp
=
do
...
...
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