{-# LANGUAGE OverloadedStrings #-} module Network.Wai.Middleware.MethodOverride ( methodOverride ) where import Network.Wai import Control.Monad (join) methodOverride :: Middleware methodOverride app req = app req' where req' = case join $ lookup "_method" $ queryString req of Nothing -> req Just m -> req { requestMethod = m }