From 4399e05cadcf0158f6f9743af02f803ac1144692 Mon Sep 17 00:00:00 2001 From: Valentin Boettcher Date: Sun, 29 Sep 2019 23:20:39 +0200 Subject: [PATCH] add "find-route-by-name" " --- src/mapper.lisp | 8 ++++++++ src/myway.lisp | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/src/mapper.lisp b/src/mapper.lisp index de67054..d159bfe 100644 --- a/src/mapper.lisp +++ b/src/mapper.lisp @@ -4,6 +4,7 @@ (:import-from :myway.route :route-rule :route-handler + :route-name :equal-route :match-route) (:import-from :myway.rule @@ -18,6 +19,7 @@ :make-mapper :mapper-routes :member-route + :member-route-by-name :add-route :next-route :dispatch)) @@ -37,6 +39,12 @@ (mapper-routes mapper) :test #'equal-route)) +(defun member-route-by-name (mapper name) + (member name + (mapper-routes mapper) + :test #'eq + :key #'route-name)) + (defun add-route (mapper route) (let ((routes (member-route mapper route))) (if routes diff --git a/src/myway.lisp b/src/myway.lisp index 1618848..3459200 100644 --- a/src/myway.lisp +++ b/src/myway.lisp @@ -7,6 +7,7 @@ :mapper-routes :make-mapper :member-route + :member-route-by-name :add-route :next-route :dispatch) @@ -32,6 +33,7 @@ :mapper-routes :add-route :find-route + :find-route-by-name :route :route-name @@ -58,6 +60,10 @@ :url url (delete-from-plist args :route-class))))) +(defun find-route-by-name (mapper name) + (car + (member-route-by-name mapper name))) + (defparameter *env* nil) (defun to-app (mapper)