Commit 84c2a44a authored by Przemyslaw Kaminski's avatar Przemyslaw Kaminski

[corpus] export json as attachment, doesn't open web page with json content

parent b3109276
...@@ -19,11 +19,12 @@ module Gargantext.API.Node.Corpus.Export ...@@ -19,11 +19,12 @@ module Gargantext.API.Node.Corpus.Export
import Data.Map (Map) import Data.Map (Map)
import Data.Maybe (fromMaybe) import Data.Maybe (fromMaybe)
import Data.Set (Set) import Data.Set (Set)
import Data.Text (Text) import Data.Text (Text, pack)
import qualified Data.List as List import qualified Data.List as List
import qualified Data.Map as Map import qualified Data.Map as Map
import qualified Data.Set as Set import qualified Data.Set as Set
import qualified Data.HashMap.Strict as HashMap import qualified Data.HashMap.Strict as HashMap
import Servant (Headers, Header, addHeader)
import Gargantext.API.Node.Corpus.Export.Types import Gargantext.API.Node.Corpus.Export.Types
import qualified Gargantext.API.Node.Document.Export.Types as DocumentExport import qualified Gargantext.API.Node.Document.Export.Types as DocumentExport
...@@ -50,7 +51,7 @@ import Gargantext.Prelude ...@@ -50,7 +51,7 @@ import Gargantext.Prelude
getCorpus :: CorpusId getCorpus :: CorpusId
-> Maybe ListId -> Maybe ListId
-> Maybe NgramsType -> Maybe NgramsType
-> GargNoServer Corpus -> GargNoServer (Headers '[Header "Content-Disposition" Text] Corpus)
getCorpus cId lId nt' = do getCorpus cId lId nt' = do
let let
...@@ -61,7 +62,7 @@ getCorpus cId lId nt' = do ...@@ -61,7 +62,7 @@ getCorpus cId lId nt' = do
listId <- case lId of listId <- case lId of
Nothing -> defaultList cId Nothing -> defaultList cId
Just l -> pure l Just l -> pure l
ns <- Map.fromList ns <- Map.fromList
<$> map (\n -> (_context_id n, n)) <$> map (\n -> (_context_id n, n))
<$> selectDocNodes cId <$> selectDocNodes cId
...@@ -79,8 +80,9 @@ getCorpus cId lId nt' = do ...@@ -79,8 +80,9 @@ getCorpus cId lId nt' = do
d_hash a b = hash [ fromMaybe "" (_hd_uniqId $ _context_hyperdata a) d_hash a b = hash [ fromMaybe "" (_hd_uniqId $ _context_hyperdata a)
, hash b , hash b
] ]
pure $ Corpus { _c_corpus = Map.elems r pure $ addHeader ("attachment; filename=GarganText_corpus-" <> (pack $ show cId) <> ".json")
, _c_hash = hash $ List.map DocumentExport._d_hash $ Map.elems r } $ Corpus { _c_corpus = Map.elems r
, _c_hash = hash $ List.map DocumentExport._d_hash $ Map.elems r }
getContextNgrams :: HasNodeError err getContextNgrams :: HasNodeError err
=> CorpusId => CorpusId
......
...@@ -42,6 +42,6 @@ type API = Summary "Corpus Export" ...@@ -42,6 +42,6 @@ type API = Summary "Corpus Export"
:> "export" :> "export"
:> QueryParam "listId" ListId :> QueryParam "listId" ListId
:> QueryParam "ngramsType" NgramsType :> QueryParam "ngramsType" NgramsType
:> Get '[JSON] Corpus :> Get '[JSON] (Headers '[Servant.Header "Content-Disposition" Text] Corpus)
$(deriveJSON (unPrefix "_c_") ''Corpus) $(deriveJSON (unPrefix "_c_") ''Corpus)
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