Skip to content

Commit 71d07ec

Browse files
committed
Reintroduce error
1 parent fc2f5e7 commit 71d07ec

1 file changed

Lines changed: 14 additions & 6 deletions

File tree

src/Distribution/Server/Features/PackageInfoJSON.hs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import qualified Distribution.Server.Framework as Framework
3838
import Distribution.Server.Features.Core (CoreFeature(..),
3939
CoreResource(..))
4040
import qualified Distribution.Server.Features.PreferredVersions as Preferred
41-
import Distribution.Server.Packages.Types (CabalFileText(..), pkgSpecificRevision, pkgLatestRevision, pkgMaxRevision)
41+
import Distribution.Server.Packages.Types (CabalFileText(..), pkgSpecificRevision, pkgLatestRevision, pkgMaxRevision, pkgNumRevisions)
4242

4343
import Distribution.Utils.ShortText (fromShortText)
4444
import Data.Foldable (toList)
@@ -245,11 +245,19 @@ servePackageBasicDescription resource userFeature preferred dpath = do
245245
guardValidPackageId resource pkgid
246246
pkg <- lookupPackageId resource pkgid
247247

248-
let (metadataInd, (cabalFile, uploadInfo)) =
249-
fromMaybe (pkgMaxRevision pkg, pkgLatestRevision pkg) $ do
250-
ix <- metadataRev
251-
rev <- pkgSpecificRevision pkg ix
252-
pure (ix, rev)
248+
(metadataInd, (cabalFile, uploadInfo)) <- do
249+
case metadataRev of
250+
Nothing ->
251+
pure (pkgMaxRevision pkg, pkgLatestRevision pkg)
252+
Just ix ->
253+
case pkgSpecificRevision pkg ix of
254+
Nothing ->
255+
Framework.errNotFound "Revision not found"
256+
[Framework.MText
257+
$ "There are " <> show (pkgNumRevisions pkg) <> " metadata revisions. Index "
258+
<> show ix <> " is out of bounds."]
259+
Just rev -> pure (ix, rev)
260+
253261
descr <- getPackageDescr cabalFile uploadInfo metadataInd
254262
return $ Framework.toResponse $ Aeson.toJSON descr
255263

0 commit comments

Comments
 (0)