adds icons endpoint

This commit is contained in:
Aaron Greenspan
2020-01-02 14:42:59 -07:00
parent 87bb534ebf
commit d8b5d3e193
11 changed files with 105 additions and 76 deletions

View File

@@ -1,3 +1,4 @@
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Handler.Version where
@@ -16,19 +17,21 @@ getVersionR :: Handler AppVersionRes
getVersionR = pure . AppVersionRes $ registryVersion
getVersionAppR :: Text -> Handler (Maybe AppVersionRes)
getVersionAppR = getVersionWSpec appResourceDir
getVersionAppR appId = getVersionWSpec appResourceDir appExt
where
appExt = Extension (toS appId) :: Extension "s9pk"
getVersionAgentR :: Handler (Maybe AppVersionRes)
getVersionAgentR = getVersionWSpec sysResourceDir "agent"
getVersionAgentR = getVersionWSpec sysResourceDir ("agent" :: Extension "")
getVersionAppMgrR :: Handler (Maybe AppVersionRes)
getVersionAppMgrR = getVersionWSpec sysResourceDir "appmgr"
getVersionAppMgrR = getVersionWSpec sysResourceDir ("appmgr" :: Extension "")
getVersionTorrcR :: Handler (Maybe AppVersionRes)
getVersionTorrcR = getVersionWSpec sysResourceDir "torrc"
getVersionTorrcR = getVersionWSpec sysResourceDir ("torrc" :: Extension "")
getVersionWSpec :: FilePath -> Text -> Handler (Maybe AppVersionRes)
getVersionWSpec rootDir appId = do
getVersionWSpec :: KnownSymbol a => FilePath -> Extension a -> Handler (Maybe AppVersionRes)
getVersionWSpec rootDir ext = do
spec <- querySpecD mostRecentVersion <$> lookupGetParam "spec"
appVersions <- registeredAppVersions (toS appId) <$> loadRegistry rootDir
appVersions <- liftIO $ getAvailableAppVersions rootDir ext
pure . fmap (AppVersionRes . version) $ getSpecifiedAppVersion spec appVersions