From fa1cc7df77c16c18032e3bfcdd6f09643878a47b Mon Sep 17 00:00:00 2001 From: emre Date: Wed, 5 Aug 2026 01:43:09 +0300 Subject: [PATCH] first form --- src/web-app.lisp | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/src/web-app.lisp b/src/web-app.lisp index 0ee8815..5cfe497 100644 --- a/src/web-app.lisp +++ b/src/web-app.lisp @@ -2,12 +2,17 @@ (defun get-product (n) ;; Query the DB. - (list n (format nil "Product nb ~a" n) 9.99)) + (list n (format nil "Product nb ~R" n) 9.99)) (defun products (&optional (n 5)) (loop for i from 0 below n collect (get-product i))) +(defun search-products (products query) + (loop for product in products + if (search query (second product) :test #'equalp) + collect product)) + (defvar *server* nil "Server instance (Hunchentoot acceptor).") @@ -21,16 +26,28 @@ args)) (defparameter *template-root* " - Lisp web app - - +{% endif %} ") (defparameter *template-product* " @@ -42,15 +59,16 @@ ") -(easy-routes:defroute root ("/") () - (render *template-root* :products (products))) -(easy-routes:defroute product-route ("/product/:n") + +(defroute product-route ("/product/:n") (&get debug &path (n 'integer)) (render *template-product* :product (get-product n) :debug debug)) -(defroute root ("/" :method :get) () - (render-products)) +(defroute root ("/" :method :get) (query) + (render *template-root* + :results (search-products (products) query) + :query query))