mirror of
https://github.com/commercialhaskell/stackage-server.git
synced 2026-01-12 04:08:29 +01:00
Prefer highest-value LTS (fixes #144)
This commit is contained in:
parent
23fe1adc37
commit
de9e250b4e
@ -600,22 +600,30 @@ getLatests :: GetStackageDatabase m
|
||||
=> Text -- ^ package name
|
||||
-> m [LatestInfo]
|
||||
getLatests pname = run $ do
|
||||
mnightly <- latestHelper pname $ \s ln -> s E.^. SnapshotId E.==. ln E.^. NightlySnap
|
||||
mlts <- latestHelper pname $ \s ln -> s E.^. SnapshotId E.==. ln E.^. LtsSnap
|
||||
return $ concat [mnightly, mlts]
|
||||
mlts <- latestHelper pname
|
||||
(\s ln -> s E.^. SnapshotId E.==. ln E.^. LtsSnap)
|
||||
(\_ ln ->
|
||||
[ E.desc $ ln E.^. LtsMajor
|
||||
, E.desc $ ln E.^. LtsMinor
|
||||
])
|
||||
mnightly <- latestHelper pname
|
||||
(\s ln -> s E.^. SnapshotId E.==. ln E.^. NightlySnap)
|
||||
(\s _ln -> [E.desc $ s E.^. SnapshotCreated])
|
||||
return $ concat [mlts, mnightly]
|
||||
|
||||
latestHelper
|
||||
:: (From E.SqlQuery E.SqlExpr SqlBackend t, MonadIO m, Functor m)
|
||||
=> Text
|
||||
-> (E.SqlExpr (Entity Snapshot) -> t -> E.SqlExpr (E.Value Bool))
|
||||
-> (E.SqlExpr (Entity Snapshot) -> t -> [E.SqlExpr E.OrderBy])
|
||||
-> ReaderT SqlBackend m [LatestInfo]
|
||||
latestHelper pname clause = fmap (fmap toLatest) $ E.select $ E.from $ \(s,ln,p,sp) -> do
|
||||
latestHelper pname clause order = fmap (fmap toLatest) $ E.select $ E.from $ \(s,ln,p,sp) -> do
|
||||
E.where_ $
|
||||
clause s ln E.&&.
|
||||
(s E.^. SnapshotId E.==. sp E.^. SnapshotPackageSnapshot) E.&&.
|
||||
(p E.^. PackageName E.==. E.val pname) E.&&.
|
||||
(p E.^. PackageId E.==. sp E.^. SnapshotPackagePackage)
|
||||
E.orderBy [E.desc $ s E.^. SnapshotCreated]
|
||||
E.orderBy $ order s ln
|
||||
E.limit 1
|
||||
return
|
||||
( s E.^. SnapshotName
|
||||
|
||||
Loading…
Reference in New Issue
Block a user