diff --git a/src/Handler/Package.hs b/src/Handler/Package.hs index 9a84724..40d1a7c 100644 --- a/src/Handler/Package.hs +++ b/src/Handler/Package.hs @@ -86,16 +86,17 @@ packagePage mspi pname = handlePackage :: Either HackageCabalInfo SnapshotPackageInfo -> Handler Html handlePackage epi = do - (isDeprecated, inFavourOf, snapInfo, PackageInfo{..}) <- run $ do - (isDeprecated, inFavourOf) <- getDeprecatedQuery pname - snapInfo <- case epi of - Right spi -> Right <$> getSnapshotPackagePageInfoQuery spi maxDisplayedDeps + (isDeprecated, inFavourOf, snapInfo, PackageInfo{..}) <- do + (isDeprecated, inFavourOf) <- run $ getDeprecatedQuery pname + snapInfo <- case epi of + Right spi -> Right <$> timeout 2000000 (run $ getSnapshotPackagePageInfoQuery spi maxDisplayedDeps) Left hci -> pure $ Left hci - pinfo <- getPackageInfoQuery epi + pinfo <- run $ getPackageInfoQuery epi pure (isDeprecated, inFavourOf, snapInfo, pinfo) (msppi, mhciLatest) <- case snapInfo of Left hci -> pure (Nothing, Just hci) - Right sppi -> pure (Just sppi, sppiLatestHackageCabalInfo sppi) + Right (Just sppi) -> pure (Just sppi, sppiLatestHackageCabalInfo sppi) + Right Nothing -> pure (Nothing, Nothing) let authors = enumerate piAuthors maintainers = let ms = enumerate piMaintainers