diff options
Diffstat (limited to 'lazybones.lisp')
-rw-r--r-- | lazybones.lisp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lazybones.lisp b/lazybones.lisp index 593328e..db1ca2a 100644 --- a/lazybones.lisp +++ b/lazybones.lisp @@ -14,6 +14,10 @@ bound and available to each handler. The exact object bound *response* varies according to the current backend. ") +(defvar *app* nil + "Dynamic variable holding the an APP instance. Dynamically bound by + RUN-ENDPOINT so that it is available if needed in request handlers.") + ;;; LAZYBONES CLASSES (defclass app () @@ -162,6 +166,8 @@ Returns NIL on failure." (list (gensym var-name)))))) -(defun run-endpoint (endpoint args &optional (request *request*)) - (let ((*request* request)) +(defun run-endpoint (endpoint args request response app) + (let ((*request* request) + (*response* response) + (*app* app)) (apply (endpoint-request-handler endpoint) args))) |