2 Module : Gargantext.Database.Action.Query.Node.User
3 Description : User Node in Gargantext
4 Copyright : (c) CNRS, 2017-Present
5 License : AGPL + CECILL v3
6 Maintainer : team@gargantext.org
7 Stability : experimental
12 module Gargantext.Database.Query.Table.Node.User
15 import Data.Maybe (fromMaybe)
16 import Gargantext.Core
17 import Gargantext.Core.Types (Name)
18 import Gargantext.Database.Admin.Types.Hyperdata (HyperdataUser(..), defaultHyperdataUser)
19 import Gargantext.Database.Admin.Types.Node (Node, NodeId(..), UserId, NodeType(..), pgNodeId)
20 import Gargantext.Database.Prelude -- (fromField', Cmd)
21 import Gargantext.Database.Query.Table.Node
22 import Gargantext.Database.Schema.Node -- (Node(..))
23 import Gargantext.Prelude
24 import Opaleye (limit)
27 getNodeUser :: NodeId -> Cmd err (Node HyperdataUser)
29 fromMaybe (panic $ "Node does not exist: " <> (cs $ show nId)) . headMay
30 <$> runOpaQuery (limit 1 $ selectNode (pgNodeId nId))
32 nodeUserW :: HasDBid NodeType => Maybe Name -> Maybe HyperdataUser -> UserId -> NodeWrite
33 nodeUserW maybeName maybeHyperdata = node NodeUser name user Nothing
35 name = maybe "User" identity maybeName
36 user = maybe defaultHyperdataUser identity maybeHyperdata