From 264ea52b58283f3f59753c7d5b42339e77b8401f Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Thu, 12 Oct 2017 02:20:35 +0200 Subject: [PATCH] Cleanup Closes #14 --- src/Handler/Submission.hs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/Handler/Submission.hs b/src/Handler/Submission.hs index 8d0e842a1..570442a75 100644 --- a/src/Handler/Submission.hs +++ b/src/Handler/Submission.hs @@ -76,19 +76,18 @@ getSubmissionDownloadArchiveR path = do cIDKey <- getsYesod appCryptoIDKey submissionID <- Base32.decrypt cIDKey cID cUUID <- UUID.encrypt cIDKey submissionID - runDB $ do - rating <- getRating submissionID + respondSourceDB "application/zip" $ do + rating <- lift $ getRating submissionID case rating of - Nothing -> notFound + Nothing -> lift notFound Just rating' -> do - sqlBackend <- ask let fileEntitySource = E.selectSource . E.from $ \(sf `E.InnerJoin` f) -> E.distinctOnOrderBy [E.asc $ f E.^. FileTitle] $ do E.on (f E.^. FileId E.==. sf E.^. SubmissionFileFileId) return f - fileEntitySource' :: Source (ResourceT IO) File - fileEntitySource' = runReaderC sqlBackend fileEntitySource =$= Conduit.map entityVal >> maybe (return ()) yield (ratingFile cID rating') + fileEntitySource' :: Source (YesodDB UniWorX) File + fileEntitySource' = fileEntitySource =$= Conduit.map entityVal >> maybe (return ()) yield (ratingFile cID rating') info = ZipInfo { zipComment = Text.encodeUtf8 . tshow $ ciphertext (cUUID :: CryptoUUIDSubmission) } - return . TypedContent "application/zip" . toContent $ fileEntitySource' =$= produceZip info + fileEntitySource' =$= produceZip info =$= Conduit.map toFlushBuilder getSubmissionR, postSubmissionR :: CryptoUUIDSubmission -> Handler Html getSubmissionR = postSubmissionR