From 27465e280e92f97f03f2689b65cd33367452d5eb Mon Sep 17 00:00:00 2001 From: Przemek Kaminski <pk@intrepidus.pl> Date: Wed, 5 Feb 2020 12:59:38 +0100 Subject: [PATCH] [Node] add "charts" in JSONField This is to save charts in dashboard. --- src/Gargantext/Database/Types/Node.hs | 20 +++++++++++++++++--- src/Gargantext/Database/Utils.hs | 2 +- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/Gargantext/Database/Types/Node.hs b/src/Gargantext/Database/Types/Node.hs index e00e5cdc..918a5dc4 100644 --- a/src/Gargantext/Database/Types/Node.hs +++ b/src/Gargantext/Database/Types/Node.hs @@ -301,6 +301,18 @@ instance Hyperdata HyperdataUser ------------------------------------------------------------------------ ------------------------------------------------------------------------ ------------------------------------------------------------------------ + +data Chart = + CDocsHistogram + | CAuthorsPie + | CInstitutesTree + | CTermsMetrics + deriving (Generic, Show, Eq) +instance ToJSON Chart +instance FromJSON Chart +instance ToSchema Chart + + data CodeType = JSON | Markdown | Haskell deriving (Generic) instance ToJSON CodeType @@ -313,6 +325,7 @@ data CorpusField = MarkdownField { _cf_text :: !Text } , _cf_desc :: !Text , _cf_query :: !Text , _cf_authors :: !Text + , _cf_charts :: ![Chart] -- , _cf_resources :: ![Resource] } | HaskellField { _cf_haskell :: !Text } @@ -361,9 +374,10 @@ corpusExample :: ByteString corpusExample = "" -- TODO defaultCorpus :: HyperdataCorpus -defaultCorpus = HyperdataCorpus [ HyperdataField JSON "Mandatory fields" (JsonField "Title" "Descr" "Bool query" "Authors") - , HyperdataField Markdown "Optional Text" (MarkdownField "# title\n## subtitle") - ] +defaultCorpus = HyperdataCorpus [ + HyperdataField JSON "Mandatory fields" (JsonField "Title" "Descr" "Bool query" "Authors" []) + , HyperdataField Markdown "Optional Text" (MarkdownField "# title\n## subtitle") + ] hyperdataCorpus :: HyperdataCorpus hyperdataCorpus = case decode corpusExample of diff --git a/src/Gargantext/Database/Utils.hs b/src/Gargantext/Database/Utils.hs index 76bb1dd0..aba379c0 100644 --- a/src/Gargantext/Database/Utils.hs +++ b/src/Gargantext/Database/Utils.hs @@ -144,7 +144,7 @@ fromField' field mb = do where valueToHyperdata v = case fromJSON v of Success a -> pure a - Error _err -> returnError ConversionFailed field "cannot parse hyperdata" + Error _err -> returnError ConversionFailed field $ DL.intercalate " " ["cannot parse hyperdata for JSON: ", show v] printSqlOpa :: Default Unpackspec a a => Query a -> IO () printSqlOpa = putStrLn . maybe "Empty query" identity . showSqlForPostgres -- 2.21.0