diff --git a/src/Application.hs b/src/Application.hs index 9ac1ac7..8576c3f 100644 --- a/src/Application.hs +++ b/src/Application.hs @@ -28,7 +28,6 @@ module Application import Startlude import Control.Monad.Logger (liftLoc, runLoggingT) -import Data.Aeson import Data.Default import Database.Persist.Postgresql (createPostgresqlPool, pgConnStr, pgPoolSize, runSqlPool, runMigration) import Language.Haskell.TH.Syntax (qLocation) diff --git a/src/Lib/Types/AppIndex.hs b/src/Lib/Types/AppIndex.hs index 490f2a7..b360e94 100644 --- a/src/Lib/Types/AppIndex.hs +++ b/src/Lib/Types/AppIndex.hs @@ -17,6 +17,7 @@ type AppIdentifier = Text data VersionInfo = VersionInfo { versionInfoVersion :: AppVersion , versionInfoReleaseNotes :: Text + , versionInfoDependencies :: HM.HashMap Text AppVersionSpec , versionInfoOsRequired :: AppVersionSpec , versionInfoOsRecommended :: AppVersionSpec } @@ -29,6 +30,7 @@ instance FromJSON VersionInfo where parseJSON = withObject "version info" $ \o -> do versionInfoVersion <- o .: "version" versionInfoReleaseNotes <- o .: "release-notes" + versionInfoDependencies <- o .:? "dependencies" .!= HM.empty versionInfoOsRequired <- o .:? "os-version-required" .!= AppVersionAny versionInfoOsRecommended <- o .:? "os-version-recommended" .!= AppVersionAny pure VersionInfo { .. } @@ -37,6 +39,7 @@ instance ToJSON VersionInfo where toJSON VersionInfo {..} = object [ "version" .= versionInfoVersion , "release-notes" .= versionInfoReleaseNotes + , "dependencies" .= versionInfoDependencies , "os-version-required" .= versionInfoOsRequired , "os-version-recommended" .= versionInfoOsRecommended ]