diff options
author | Colin Okay <okay@toyful.space> | 2022-02-08 11:47:07 -0600 |
---|---|---|
committer | Colin Okay <okay@toyful.space> | 2022-02-08 11:47:07 -0600 |
commit | ca67709947d065784b219f184a17ee20fcb38b3b (patch) | |
tree | e4f2a78e2f7971a17d8778e13303cce149648259 /lazybones-documentation.lisp | |
parent | ddbdb583e0cb309db5d5b03cc5bcf5216951d389 (diff) |
adding route variables to the documentation generator
Diffstat (limited to 'lazybones-documentation.lisp')
-rw-r--r-- | lazybones-documentation.lisp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lazybones-documentation.lisp b/lazybones-documentation.lisp index 16164c5..b8e1c34 100644 --- a/lazybones-documentation.lisp +++ b/lazybones-documentation.lisp @@ -32,6 +32,14 @@ (princ (if content-type content-type default-content-type )) (princ "*") newline + (a:when-let (vars (endpoint-route-vars ep)) + (princ "Route Variables: ") newline + (dolist (var vars) + (princ "- ") (princ var) + (a:when-let (val-parser (route-var-value-parser ep var)) + (princ ": ") (princ (strip-newlines (documentation val-parser 'function))))) + newline) + (when authorizer (princ "Authorization Required: ") newline @@ -51,6 +59,16 @@ > " string))) +(defun strip-newlines (string) + (str:replace-all '(#\newline) "" string)) + (defun function-or-function-name-p (thing) (or (functionp thing) (and (symbolp thing) (fboundp thing)))) + +(defun endpoint-route-vars (ep) + "return a list of route variables for endpoint EP" + (mapcar 'first (remove-if-not #'consp (endpoint-dispatch-pattern ep)))) + +(defun route-var-value-parser (ep var) + (second (assoc var (remove-if-not #'consp (endpoint-dispatch-pattern ep))))) |