module Gargantext.Components.Node where import Gargantext.Prelude import Data.Argonaut (class DecodeJson, decodeJson, (.?)) newtype NodePoly a = NodePoly { id :: Int , typename :: Int , userId :: Int , parentId :: Int , name :: String , date :: String , hyperdata :: a } instance decodeNodePoly :: (DecodeJson a) => DecodeJson (NodePoly a) where decodeJson json = do obj <- decodeJson json id <- obj .? "id" typename <- obj .? "typename" userId <- obj .? "userId" parentId <- obj .? "parentId" name <- obj .? "name" date <- obj .? "date" hyperdata <- obj .? "hyperdata" hyperdata' <- decodeJson hyperdata pure $ NodePoly { id : id , typename : typename , userId : userId , parentId : parentId , name : name , date : date , hyperdata: hyperdata' } newtype HyperdataList = HyperdataList { preferences :: String} instance decodeHyperdataList :: DecodeJson HyperdataList where decodeJson json = do obj <- decodeJson json pref <- obj .? "preferences" pure $ HyperdataList { preferences : pref}