Author: hhubner
Date: Wed Jan 23 13:29:30 2008
New Revision: 2400
Modified:
branches/bos/projects/bos/web/boi-handlers.lisp
branches/bos/projects/bos/web/bos.web.asd
branches/bos/projects/bos/web/web-macros.lisp
Log:
Move WITH-XML-RESPONSE and WITH-XML-ERROR-HANDLER macros to web-macros.lisp
Modified: branches/bos/projects/bos/web/boi-handlers.lisp
==============================================================================
--- branches/bos/projects/bos/web/boi-handlers.lisp (original)
+++ branches/bos/projects/bos/web/boi-handlers.lisp Wed Jan 23 13:29:30 2008
@@ -3,30 +3,6 @@
(enable-interpol-syntax)
-(defvar *xml-sink*)
-
-(defmacro with-xml-response ((&key (content-type "text/xml") (root-element "response")) &body body)
- `(with-http-response (*req* *ent* :content-type ,content-type)
- (with-query-params (*req* download)
- (when download
- (setf (reply-header-slot-value *req* :content-disposition)
- (format nil "attachment; filename=~A" download))))
- (with-http-body (*req* *ent*)
- (let ((*xml-sink* (make-character-stream-sink net.html.generator:*html-stream* :canonical nil)))
- (with-xml-output *xml-sink*
- (with-element ,root-element
- ,@body))))))
-
-(defmacro with-xml-error-handler (req &body body)
- (declare (ignore req))
- `(handler-case
- (progn ,@body)
- (error (e)
- (with-xml-response ()
- (with-element "status"
- (attribute "failure" 1)
- (text (princ-to-string e)))))))
-
(defclass boi-handler (page-handler)
())
Modified: branches/bos/projects/bos/web/bos.web.asd
==============================================================================
--- branches/bos/projects/bos/web/bos.web.asd (original)
+++ branches/bos/projects/bos/web/bos.web.asd Wed Jan 23 13:29:30 2008
@@ -30,7 +30,7 @@
(:file "contract-handlers" :depends-on ("web-utils"))
(:file "contract-image-handler" :depends-on ("web-utils"))
(:file "reports-xml-handler" :depends-on ("boi-handlers"))
- (:file "kml-handlers" :depends-on ("boi-handlers"))
+ (:file "kml-handlers" :depends-on ("packages" "web-macros"))
(:file "sponsor-handlers" :depends-on ("web-utils"))
(:file "news-handlers" :depends-on ("web-utils"))
(:file "allocation-area-handlers" :depends-on ("web-utils"))
Modified: branches/bos/projects/bos/web/web-macros.lisp
==============================================================================
--- branches/bos/projects/bos/web/web-macros.lisp (original)
+++ branches/bos/projects/bos/web/web-macros.lisp Wed Jan 23 13:29:30 2008
@@ -5,3 +5,27 @@
(defmacro with-bos-cms-page ((req &key title response) &rest body)
`(with-bknr-page (,req :title ,title :response ,response)
,@body))
+
+(defvar *xml-sink*)
+
+(defmacro with-xml-response ((&key (content-type "text/xml") (root-element "response")) &body body)
+ `(with-http-response (*req* *ent* :content-type ,content-type)
+ (with-query-params (*req* download)
+ (when download
+ (setf (reply-header-slot-value *req* :content-disposition)
+ (format nil "attachment; filename=~A" download))))
+ (with-http-body (*req* *ent*)
+ (let ((*xml-sink* (make-character-stream-sink net.html.generator:*html-stream* :canonical nil)))
+ (with-xml-output *xml-sink*
+ (with-element ,root-element
+ ,@body))))))
+
+(defmacro with-xml-error-handler (req &body body)
+ (declare (ignore req))
+ `(handler-case
+ (progn ,@body)
+ (error (e)
+ (with-xml-response ()
+ (with-element "status"
+ (attribute "failure" 1)
+ (text (princ-to-string e)))))))