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, 9 insertions, 7 deletions
diff --git a/cwality-maps/Main.hs b/cwality-maps/Main.hs
index 39723f4..3f383cd 100644
--- a/cwality-maps/Main.hs
+++ b/cwality-maps/Main.hs
@@ -78,10 +78,11 @@ instance FromHttpApiData MapParams where
-- | actual set of routes: api for json & html + static pages from disk
type Routes =
- Capture "map.json" JsonFilename :> Capture "params" MapParams :> Get '[JSON] Tiledmap
- -- explicitly capture broken json to return 400 instead of looking for files
- :<|> Capture "map.json" JsonFilename :> CaptureAll "rest" Text :> Get '[JSON] Void
- :<|> Raw
+ "generate" :> Capture "params" MapParams :>
+ (Capture "map.json" JsonFilename :> Get '[JSON] Tiledmap
+ -- explicitly capture broken json to return 400 instead of looking for files
+ :<|> Capture "map.json" JsonFilename :> CaptureAll "rest" Text :> Get '[JSON] Void
+ :<|> Raw)
@@ -90,8 +91,8 @@ 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 =
+mapHandler :: MapParams -> Config True -> JsonFilename -> Handler Tiledmap
+mapHandler params config (JsonFilename mapname) =
case M.lookup mapname (snd $ view template config) of
Just basemap -> runStdoutLoggingT $
logWarnN (pretty errors) >> pure tiledmap
@@ -103,7 +104,8 @@ mapHandler config (JsonFilename mapname) params =
-- | Complete set of routes: API + HTML sites
server :: Config True -> Server Routes
-server config = mapHandler config
+server config params =
+ mapHandler params config
:<|> (\_ _ -> throwError err400)
:<|> serveDirectoryWebApp (fst . view template $ config)