2 Module : Gargantext.Database.Action.User
4 Copyright : (c) CNRS, 2017-Present
5 License : AGPL + CECILL v3
6 Maintainer : team@gargantext.org
7 Stability : experimental
13 module Gargantext.Database.Action.User
16 import Data.Text (Text)
17 import Gargantext.Core.Types.Individu (User(..))
18 import Gargantext.Database.Admin.Types.Node
19 import Gargantext.Database.Prelude (Cmd)
20 import Gargantext.Database.Query.Table.Node
21 import Gargantext.Database.Query.Table.User
22 import Gargantext.Database.Query.Table.Node.Error
23 import Gargantext.Database.Schema.Node
24 import Gargantext.Prelude
26 ------------------------------------------------------------------------
27 getUserLightWithId :: HasNodeError err => Int -> Cmd err UserLight
28 getUserLightWithId i = do
29 candidates <- head <$> getUsersWithId i
31 Nothing -> nodeError NoUserFound
34 getUserLightDB :: HasNodeError err => User -> Cmd err UserLight
37 userLight <- getUserLightWithId userId
40 ------------------------------------------------------------------------
41 getUserId :: HasNodeError err
45 maybeUser <- getUserId' u
47 Nothing -> nodeError NoUserFound
50 getUserId' :: HasNodeError err
52 -> Cmd err (Maybe UserId)
53 getUserId' (UserDBId uid) = pure (Just uid)
54 getUserId' (RootId rid) = do
56 pure $ Just $ _node_userId n
57 getUserId' (UserName u ) = do
60 Just user -> pure $ Just $ userLight_id user
61 Nothing -> pure Nothing
62 getUserId' UserPublic = pure Nothing
64 ------------------------------------------------------------------------
67 -- that is confusing, we should change this
69 getUsername :: HasNodeError err
72 getUsername (UserName u) = pure u
73 getUsername (UserDBId i) = do
74 users <- getUsersWithId i
76 Just u -> pure $ userLight_username u
77 Nothing -> nodeError $ NodeError "G.D.A.U.getUserName: User not found with that id"
78 getUsername (RootId rid) = do
80 getUsername (UserDBId $ _node_userId n)
81 getUsername UserPublic = pure "UserPublic"
83 --------------------------------------------------------------------------
84 -- getRootId is in Gargantext.Database.Query.Tree.Root