aboutsummaryrefslogtreecommitdiff
path: root/lazybones.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lazybones.lisp')
-rw-r--r--lazybones.lisp10
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)))