]> Git — Sourcephile - gargantext.git/blob - src/Gargantext/Database/Config.hs
[DB-FLOW] functions to create nodeTypes.
[gargantext.git] / src / Gargantext / Database / Config.hs
1 {-|
2 Module : Gargantext.Database
3 Description : Tools for Database
4 Copyright : (c) CNRS, 2017-Present
5 License : AGPL + CECILL v3
6 Maintainer : team@gargantext.org
7 Stability : experimental
8 Portability : POSIX
9
10 All Database related stuff here.
11
12 Target: just import this module and nothing else to work with
13 Gargantext's database.
14
15 -}
16
17 {-# LANGUAGE NoImplicitPrelude #-}
18
19 module Gargantext.Database.Config
20 where
21
22
23 import Data.Text (pack)
24 import Data.Tuple.Extra (swap)
25 import Data.Maybe (fromMaybe)
26 import Data.List (lookup)
27
28 import Gargantext.Database.Types.Node
29 import Gargantext.Prelude
30
31 nodeTypeId :: NodeType -> NodeTypeId
32 nodeTypeId n =
33 case n of
34 NodeUser -> 1
35 NodeFolder -> 2
36 NodeCorpusV3 -> 3
37 NodeCorpus -> 30
38 NodeAnnuaire -> 31
39 NodeDocument -> 4
40 NodeContact -> 41
41 --NodeSwap -> 19
42
43 ---- Lists
44 -- StopList -> 5
45 -- GroupList -> 6
46 -- MainList -> 7
47 -- MapList -> 8
48
49 ---- Scores
50 NodeOccurrences -> 10
51 NodeGraph -> 9
52 NodeDashboard -> 5
53 NodeChart -> 51
54
55 -- Cooccurrences -> 9
56 --
57 -- Specclusion -> 11
58 -- Genclusion -> 18
59 -- Cvalue -> 12
60 --
61 -- TfidfCorpus -> 13
62 -- TfidfGlobal -> 14
63 --
64 -- TirankLocal -> 16
65 -- TirankGlobal -> 17
66
67 -- Node management
68 -- NodeFavorites -> 15
69
70
71 --
72 -- | Nodes are typed in the database according to a specific ID
73 --
74 nodeTypeInv :: [(NodeTypeId, NodeType)]
75 nodeTypeInv = map swap nodeTypes
76
77 nodeTypes :: [(NodeType, NodeTypeId)]
78 nodeTypes = [ (n, nodeTypeId n) | n <- allNodeTypes ]
79
80 typeId2node :: NodeTypeId -> NodeType
81 typeId2node tId = fromMaybe (panic $ pack $ "Type Id " <> show tId <> " does not exist")
82 (lookup tId nodeTypeInv)