mirror of
https://github.com/Start9Labs/registry.git
synced 2026-04-04 13:49:43 +00:00
tolerate empty list of os versions
This commit is contained in:
@@ -44,8 +44,7 @@ import Data.ByteString.Base64
|
|||||||
import qualified Data.ByteString.Lazy as LBS
|
import qualified Data.ByteString.Lazy as LBS
|
||||||
import qualified Data.Conduit.List as CL
|
import qualified Data.Conduit.List as CL
|
||||||
import qualified Data.HashMap.Strict as HM
|
import qualified Data.HashMap.Strict as HM
|
||||||
import Data.List ( head
|
import Data.List ( lookup
|
||||||
, lookup
|
|
||||||
, sortOn
|
, sortOn
|
||||||
)
|
)
|
||||||
import Data.String.Interpolate.IsString
|
import Data.String.Interpolate.IsString
|
||||||
@@ -130,6 +129,7 @@ import Yesod.Core ( Content(ContentFile)
|
|||||||
, sendResponseStatus
|
, sendResponseStatus
|
||||||
, typeOctet
|
, typeOctet
|
||||||
)
|
)
|
||||||
|
import Yesod.Core.Types ( JSONResponse(..) )
|
||||||
import Yesod.Persist ( YesodDB )
|
import Yesod.Persist ( YesodDB )
|
||||||
import Yesod.Persist.Core ( YesodPersist(runDB) )
|
import Yesod.Persist.Core ( YesodPersist(runDB) )
|
||||||
|
|
||||||
@@ -142,24 +142,24 @@ getInfoR = do
|
|||||||
pure cats
|
pure cats
|
||||||
pure $ InfoRes name $ categoryName . entityVal <$> allCategories
|
pure $ InfoRes name $ categoryName . entityVal <$> allCategories
|
||||||
|
|
||||||
getEosVersionR :: Handler EosRes
|
getEosVersionR :: Handler (JSONResponse (Maybe EosRes))
|
||||||
getEosVersionR = do
|
getEosVersionR = do
|
||||||
allEosVersions <- runDB $ select $ do
|
allEosVersions <- runDB $ select $ do
|
||||||
vers <- from $ table @OsVersion
|
vers <- from $ table @OsVersion
|
||||||
orderBy [desc (vers ^. OsVersionCreatedAt)]
|
orderBy [desc (vers ^. OsVersionCreatedAt)]
|
||||||
pure vers
|
pure vers
|
||||||
let osV = entityVal <$> allEosVersions
|
let osV = entityVal <$> allEosVersions
|
||||||
let latest = Data.List.head osV
|
let mLatest = head osV
|
||||||
let mappedVersions =
|
let mappedVersions =
|
||||||
ReleaseNotes
|
ReleaseNotes
|
||||||
$ HM.fromList
|
$ HM.fromList
|
||||||
$ sortOn (Down . fst)
|
$ sortOn (Down . fst)
|
||||||
$ (\v -> (osVersionNumber v, osVersionReleaseNotes v))
|
$ (\v -> (osVersionNumber v, osVersionReleaseNotes v))
|
||||||
<$> osV
|
<$> osV
|
||||||
pure $ EosRes { eosResVersion = osVersionNumber latest
|
pure . JSONResponse $ mLatest <&> \latest -> EosRes { eosResVersion = osVersionNumber latest
|
||||||
, eosResHeadline = osVersionHeadline latest
|
, eosResHeadline = osVersionHeadline latest
|
||||||
, eosResReleaseNotes = mappedVersions
|
, eosResReleaseNotes = mappedVersions
|
||||||
}
|
}
|
||||||
|
|
||||||
getReleaseNotesR :: PkgId -> Handler ReleaseNotes
|
getReleaseNotesR :: PkgId -> Handler ReleaseNotes
|
||||||
getReleaseNotesR pkg = do
|
getReleaseNotesR pkg = do
|
||||||
|
|||||||
Reference in New Issue
Block a user