should work

This commit is contained in:
Keagan McClelland
2020-02-27 14:58:08 -07:00
parent 76766e5f94
commit f5fcbbe0f2
6 changed files with 46 additions and 23 deletions

View File

@@ -7,7 +7,9 @@ module Handler.Version where
import Startlude
import Control.Monad.Trans.Maybe
import Data.Char
import Data.String.Interpolate.IsString
import qualified Data.Text as T
import Network.HTTP.Types
import Yesod.Core
@@ -38,7 +40,10 @@ getVersionSysR sysAppId = runMaybeT $ do
getVersionWSpec :: KnownSymbol a => FilePath -> Extension a -> Handler (Maybe AppVersionRes)
getVersionWSpec rootDir ext = do
spec <- querySpecD mostRecentVersion <$> lookupGetParam "spec"
specString <- T.filter (not . isSpace) . fromMaybe "*" <$> lookupGetParam "spec"
spec <- case readMaybe specString of
Nothing -> sendResponseStatus status400 ("Invalid App Version Specification" :: Text)
Just t -> pure t
appVersions <- liftIO $ getAvailableAppVersions rootDir ext
let av = version <$> getSpecifiedAppVersion spec appVersions
pure $ liftA2 AppVersionRes av (pure Nothing)