Commit 3e2fa028 authored by Alexandre Delanoë's avatar Alexandre Delanoë

[NewType] NodeId implemented.

parent 5a526bc3
...@@ -124,7 +124,7 @@ type RenameApi = Summary " Rename Node" ...@@ -124,7 +124,7 @@ type RenameApi = Summary " Rename Node"
type PostNodeApi = Summary " PostNode Node with ParentId as {id}" type PostNodeApi = Summary " PostNode Node with ParentId as {id}"
:> ReqBody '[JSON] PostNode :> ReqBody '[JSON] PostNode
:> Post '[JSON] [Int] :> Post '[JSON] [NodeId]
type ChildrenApi a = Summary " Summary children" type ChildrenApi a = Summary " Summary children"
:> QueryParam "type" NodeType :> QueryParam "type" NodeType
...@@ -177,7 +177,7 @@ instance Arbitrary PostNode where ...@@ -177,7 +177,7 @@ instance Arbitrary PostNode where
------------------------------------------------------------------------ ------------------------------------------------------------------------
type DocsApi = Summary "Docs : Move to trash" type DocsApi = Summary "Docs : Move to trash"
:> ReqBody '[JSON] Documents :> ReqBody '[JSON] Documents
:> Delete '[JSON] [NodeId] :> Delete '[JSON] [Int]
data Documents = Documents { documents :: [NodeId]} data Documents = Documents { documents :: [NodeId]}
deriving (Generic) deriving (Generic)
......
...@@ -39,7 +39,6 @@ import Gargantext.Database.Flow.Utils ...@@ -39,7 +39,6 @@ import Gargantext.Database.Flow.Utils
import Gargantext.Database.Utils (Cmd, runPGSQuery) import Gargantext.Database.Utils (Cmd, runPGSQuery)
import Gargantext.Database.Types.Node (AnnuaireId, CorpusId, ContactId) import Gargantext.Database.Types.Node (AnnuaireId, CorpusId, ContactId)
import Gargantext.Database.Node.Children import Gargantext.Database.Node.Children
import Gargantext.Core.Types.Main
import Gargantext.Core.Types (NodeType(..)) import Gargantext.Core.Types (NodeType(..))
-- TODO mv this type in Types Main -- TODO mv this type in Types Main
......
...@@ -17,7 +17,6 @@ Portability : POSIX ...@@ -17,7 +17,6 @@ Portability : POSIX
module Gargantext.Database.Node.Update (Update(..), update) where module Gargantext.Database.Node.Update (Update(..), update) where
import Data.Text (Text)
import qualified Data.Text as DT import qualified Data.Text as DT
import Database.PostgreSQL.Simple import Database.PostgreSQL.Simple
......
...@@ -49,7 +49,7 @@ import Text.Read (read) ...@@ -49,7 +49,7 @@ import Text.Read (read)
import Text.Show (Show()) import Text.Show (Show())
import Database.PostgreSQL.Simple.ToField (ToField, toField, toJSONField) import Database.PostgreSQL.Simple.ToField (ToField, toField, toJSONField)
import Database.PostgreSQL.Simple.FromField (FromField) import Database.PostgreSQL.Simple.FromField (FromField, fromField)
import Servant import Servant
import Test.QuickCheck.Arbitrary import Test.QuickCheck.Arbitrary
...@@ -57,19 +57,27 @@ import Test.QuickCheck (elements) ...@@ -57,19 +57,27 @@ import Test.QuickCheck (elements)
import Gargantext.Prelude import Gargantext.Prelude
import Gargantext.Core.Utils.Prefix (unPrefix) import Gargantext.Core.Utils.Prefix (unPrefix)
import Gargantext.Database.Utils
------------------------------------------------------------------------ ------------------------------------------------------------------------
newtype NodeId = NodeId Int newtype NodeId = NodeId Int
deriving (Show, Read, Generic, Num, Eq, Ord, Enum) deriving (Show, Read, Generic, Num, Eq, Ord, Enum)
instance ToField NodeId instance ToField NodeId where
instance FromField NodeId toField (NodeId n) = toField n
instance FromField NodeId where
fromField = fromField'
instance ToJSON NodeId instance ToJSON NodeId
instance FromJSON NodeId instance FromJSON NodeId
instance ToSchema NodeId instance ToSchema NodeId
instance FromHttpApiData NodeId instance FromHttpApiData NodeId where
parseUrlPiece n = pure $ NodeId $ (read . cs) n
instance ToParamSchema NodeId instance ToParamSchema NodeId
instance Arbitrary NodeId instance Arbitrary NodeId where
arbitrary = NodeId <$> arbitrary
type ParentId = NodeId type ParentId = NodeId
type GraphId = NodeId type GraphId = NodeId
...@@ -404,8 +412,8 @@ allNodeTypes = [minBound ..] ...@@ -404,8 +412,8 @@ allNodeTypes = [minBound ..]
instance FromJSON NodeType instance FromJSON NodeType
instance ToJSON NodeType instance ToJSON NodeType
instance FromHttpApiData NodeType instance FromHttpApiData NodeType
where where
parseUrlPiece = Right . read . unpack parseUrlPiece = Right . read . unpack
instance ToParamSchema NodeType instance ToParamSchema NodeType
......
...@@ -36,7 +36,7 @@ import Database.PostgreSQL.Simple (Connection, connect) ...@@ -36,7 +36,7 @@ import Database.PostgreSQL.Simple (Connection, connect)
import Database.PostgreSQL.Simple.FromField ( Conversion, ResultError(ConversionFailed), fromField, returnError) import Database.PostgreSQL.Simple.FromField ( Conversion, ResultError(ConversionFailed), fromField, returnError)
import Database.PostgreSQL.Simple.Internal (Field) import Database.PostgreSQL.Simple.Internal (Field)
import Gargantext.Prelude import Gargantext.Prelude
import Opaleye (Query, Unpackspec, showSqlForPostgres, FromFields, Select, runQuery, Column) import Opaleye (Query, Unpackspec, showSqlForPostgres, FromFields, Select, runQuery)
import Servant (ServantErr) import Servant (ServantErr)
import System.IO (FilePath) import System.IO (FilePath)
import Text.Read (read) import Text.Read (read)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment