From 8bdaae0881fe98c4c5f69f1332ac2ffb0ca83081 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Wed, 17 Mar 2021 21:38:18 +0100 Subject: [PATCH] fix(csv-export): mime confusion --- src/Handler/Utils/Csv.hs | 8 ++++++-- src/Handler/Utils/Table/Pagination.hs | 4 +++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Handler/Utils/Csv.hs b/src/Handler/Utils/Csv.hs index ee1725c98..e85d60d8d 100644 --- a/src/Handler/Utils/Csv.hs +++ b/src/Handler/Utils/Csv.hs @@ -318,7 +318,9 @@ respondCsv :: ( ToNamedRecord csv -> Header -> ConduitT () csv Handler () -> Handler TypedContent -respondCsv sheetName hdr src = respondSource typeCsv' $ src .| void (encodeCsv sheetName hdr) .| awaitForever sendChunk +respondCsv sheetName hdr src = do + cType <- expectedCsvContentType + respondSource cType $ src .| void (encodeCsv sheetName hdr) .| awaitForever sendChunk respondDefaultOrderedCsv :: forall csv msg. ( ToNamedRecord csv @@ -337,7 +339,9 @@ respondCsvDB :: ( ToNamedRecord csv -> Header -> ConduitT () csv DB () -> Handler TypedContent -respondCsvDB sheetName hdr src = respondSourceDB typeCsv' $ src .| void (encodeCsv sheetName hdr) .| awaitForever sendChunk +respondCsvDB sheetName hdr src = do + cType <- expectedCsvContentType + respondSourceDB cType $ src .| void (encodeCsv sheetName hdr) .| awaitForever sendChunk respondDefaultOrderedCsvDB :: forall csv msg. ( ToNamedRecord csv diff --git a/src/Handler/Utils/Table/Pagination.hs b/src/Handler/Utils/Table/Pagination.hs index 5754ee7b9..fa6a8ac43 100644 --- a/src/Handler/Utils/Table/Pagination.hs +++ b/src/Handler/Utils/Table/Pagination.hs @@ -701,7 +701,9 @@ withCsvExtraRep sheetName exportData mEncode = maybe id (flip snoc) (csvExtraRep DBTCsvEncode{ dbtCsvNoExportData = (_ :: Maybe (AnIso' exportData' ())), .. } <- mEncode Refl <- eqT @exportData @exportData' return DBTExtraRepFor - { dbtERepContentType = typeCsv' + { dbtERepContentType = case fmt of + FormatCsv -> typeCsv' + FormatXlsx -> typeXlsx , dbtERepDoEncode = do csvRendered <- toCsvRendered <$> lift (dbtCsvHeader $ Just exportData) <*> (dbtCsvDoEncode exportData .| C.foldMap (pure @[])) encOpts <- csvOptionsForFormat fmt