summaryrefslogtreecommitdiff
path: root/cwality-maps
diff options
context:
space:
mode:
Diffstat (limited to 'cwality-maps')
-rw-r--r--cwality-maps/Main.hs16
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"