ihp-1.5.0: Haskell Web Framework
Copyright(c) digitally induced GmbH 2020
Safe HaskellNone
LanguageGHC2021

IHP.Router.Types

Description

 
Synopsis

Documentation

data ControllerRoute application Source #

A controller route entry — either a pre-built HashMap for O(1) dispatch, or a custom Attoparsec parser for dynamic URL patterns.

ControllerRouteMap carries both an auto-route HashMap and a fallback parser for custom routes. ControllerRouteParser wraps standalone parsers like get, post, webSocketApp, startPage, etc.

frontControllerToWAIApp scans all ControllerRouteMap HashMaps directly (no Attoparsec) for O(1) dispatch, and only falls back to Attoparsec for custom/dynamic route parsers.

Constructors

ControllerRouteMap !(HashMap ByteString (application -> Application)) (Parser Application)

Auto-route HashMap + custom routes fallback parser (lazy — only evaluated on HashMap miss)

ControllerRouteParser !(Parser Application)

Custom route parser (for get, post, webSocketApp, startPage, etc.)

data TypedAutoRouteError Source #

Constructors

BadType 
TooFewArguments 
NotMatched 
NoConstructorMatched

Thrown when parseUUIDArgument, parseIntArgument, etc. get passed an invalid value

Let's say we have a ShowProjectAction { id :: Id Project }.

When opening /ShowProject?projectId=ab55d579-80cd-4608-9a8f-c76dea6c2332 everything is fine. But when opening /ShowProject?projectId=not-an-uuid this exception will be thrown.