From 770c167753c912c318bd787706e00ca92d8351ae Mon Sep 17 00:00:00 2001 From: Filip Gralinski Date: Sat, 14 Dec 2019 11:58:52 +0100 Subject: [PATCH] Refactor towards changing evaluation records --- Handler/Shared.hs | 7 ++++++- Handler/ShowChallenge.hs | 2 +- Handler/Tables.hs | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Handler/Shared.hs b/Handler/Shared.hs index 93b345d..f5944cc 100644 --- a/Handler/Shared.hs +++ b/Handler/Shared.hs @@ -8,7 +8,6 @@ import Import import qualified Data.IntMap as IntMap import Handler.Runner -import Handler.Common import System.Exit import qualified Data.Text as T @@ -525,6 +524,12 @@ formatVersion (major, minor, patch) = (T.pack $ show major) <> "." <> (T.pack $ show patch) +checkWhetherGivenUserRepo :: (PersistStoreRead backend, MonadIO m, BaseBackend backend ~ SqlBackend) + => Key User -> Key Submission -> ReaderT backend m Bool checkWhetherGivenUserRepo userId submissionId = do submission <- get404 submissionId return $ userId == submissionSubmitter submission + +fetchTheEvaluation :: (MonadIO m, PersistUniqueRead backend, BaseBackend backend ~ SqlBackend) + => Out -> SHA1 -> ReaderT backend m (Maybe (Entity Evaluation)) +fetchTheEvaluation out _ = getBy $ UniqueEvaluationTestChecksum (outTest out) (outChecksum out) diff --git a/Handler/ShowChallenge.hs b/Handler/ShowChallenge.hs index a9cb1c1..c19ae18 100644 --- a/Handler/ShowChallenge.hs +++ b/Handler/ShowChallenge.hs @@ -584,7 +584,7 @@ checkOrInsertEvaluation :: FilePath -> Channel -> Out -> Handler () checkOrInsertEvaluation repoDir chan out = do test <- runDB $ get404 $ outTest out challenge <- runDB $ get404 $ testChallenge test - maybeEvaluation <- runDB $ getBy $ UniqueEvaluationTestChecksum (outTest out) (outChecksum out) + maybeEvaluation <- runDB $ fetchTheEvaluation out undefined case maybeEvaluation of Just (Entity _ evaluation) -> do msg chan $ concat ["Already evaluated with score ", (fromMaybe "???" $ formatNonScientifically <$> evaluationScore evaluation)] diff --git a/Handler/Tables.hs b/Handler/Tables.hs index c4c7a91..7cb244b 100644 --- a/Handler/Tables.hs +++ b/Handler/Tables.hs @@ -343,7 +343,7 @@ getEvaluationMap :: (MonadIO m, PersistQueryRead backend, PersistUniqueRead back getEvaluationMap (rank, (s@(Entity submissionId submission), v@(Entity variantId _))) = do outs <- selectList [OutVariant ==. variantId] [] user <- get404 $ submissionSubmitter submission - maybeEvaluations <- mapM (\(Entity _ o) -> getBy $ UniqueEvaluationTestChecksum (outTest o) (outChecksum o)) outs + maybeEvaluations <- mapM (\(Entity _ o) -> fetchTheEvaluation o undefined) outs let evaluations = catMaybes maybeEvaluations let pairs = map (\(Entity _ e) -> (evaluationTest e, e)) evaluations pairs' <- mapM (\(testId, e) -> do