diff options
Diffstat (limited to 'cwality-maps')
-rw-r--r-- | cwality-maps/Main.hs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/cwality-maps/Main.hs b/cwality-maps/Main.hs index f242b94..39723f4 100644 --- a/cwality-maps/Main.hs +++ b/cwality-maps/Main.hs @@ -44,6 +44,9 @@ import Servant.Server.StaticFiles (serveDirectoryWebApp) import Substitute (Substitutable (substitute), SubstitutionError) +import Control.Monad.Logger + + -- | a map's filename ending in .json -- (a newtype to differentiate between maps and assets in a route) newtype JsonFilename = JsonFilename Text @@ -87,14 +90,15 @@ mkMap :: Config True -> Tiledmap -> MapParams -> ([SubstitutionError], Tiledmap) mkMap _config basemap params = substitute basemap (substs params) - mapHandler :: Config True -> JsonFilename -> MapParams -> Handler Tiledmap mapHandler config (JsonFilename mapname) params = case M.lookup mapname (snd $ view template config) of - Just basemap -> do - let (errors, map) = mkMap config basemap params - print errors - pure map + Just basemap -> runStdoutLoggingT $ + logWarnN (pretty errors) >> pure tiledmap + where (errors, tiledmap) = mkMap config basemap params + pretty errors = T.concat + . intersperse "\n " + $ concatMap (lines . show) errors Nothing -> throwError err404 -- | Complete set of routes: API + HTML sites @@ -106,6 +110,8 @@ server config = mapHandler config app :: Config True -> Application app = serve (Proxy @Routes) . server + + main :: IO () main = do config <- loadConfig "./cwality-config.toml" |