Merge branch 'master' into python3
[wrw.git] / wrw / util.py
index bf78f8e..eaa6a62 100644 (file)
@@ -1,5 +1,5 @@
 import inspect
-from . import req, dispatch, session, form
+from . import req, dispatch, session, form, resp
 
 def wsgiwrap(callable):
     def wrapper(env, startreq):
@@ -25,6 +25,9 @@ def formparams(callable):
             for arg in list(args):
                 if arg not in spec.args:
                     del args[arg]
+        for i in range(len(spec.args) - len(spec.defaults)):
+            if spec.args[i] not in args:
+                raise resp.httperror(400, "Missing parameter", ("The query parameter `", resp.h.code(spec.args[i]), "' is required but not supplied."))
         return callable(**args)
     return wrapper