]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/web-server/examples/012-search-bbdb.el
Add 'packages/web-server/' from commit 'd0b6ae9df6014db2195da0081dc97cc8246f1fda'
[gnu-emacs-elpa] / packages / web-server / examples / 012-search-bbdb.el
diff --git a/packages/web-server/examples/012-search-bbdb.el b/packages/web-server/examples/012-search-bbdb.el
new file mode 100644 (file)
index 0000000..7ac1a6f
--- /dev/null
@@ -0,0 +1,21 @@
+;;; search-bbdb.el --- search the Big Brother Data Base for a supplied name
+(ws-start
+ (lambda (request)
+   (with-slots (process headers) request
+     (let ((name (cdr (assoc "name" headers))))
+       (unless name
+         (ws-error process "Must specify a name to search."))
+       (save-excursion
+         (unless (set-buffer (get-buffer "*BBDB*"))
+           (ws-error process "no *BBDB* buffer found"))
+         (bbdb-search-name name)
+         (if (equal (point-min) (point-max))
+             (progn
+               (ws-response-header process 404
+                 '("Content-type" . "text/plain"))
+               (process-send-string process
+                 "no matches found"))
+           (ws-response-header process 200
+             '("Content-type" . "text/plain"))
+           (process-send-string process (buffer-string)))))))
+ 9012)