parent
37a9836193
commit
264ea52b58
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user