Author: hhubner Date: 2006-10-20 17:39:18 -0400 (Fri, 20 Oct 2006) New Revision: 2016
Modified: branches/xml-class-rework/projects/bos/m2/mail-generator.lisp Log: vcard generation with error handling
Modified: branches/xml-class-rework/projects/bos/m2/mail-generator.lisp =================================================================== --- branches/xml-class-rework/projects/bos/m2/mail-generator.lisp 2006-10-20 20:06:11 UTC (rev 2015) +++ branches/xml-class-rework/projects/bos/m2/mail-generator.lisp 2006-10-20 21:39:18 UTC (rev 2016) @@ -118,33 +118,38 @@ contract-id))))
(defun worldpay-callback-request-to-vcard (request) - (with-query-params (request cartId - transId - MC_sponsorid - MC_donationcert-yearly - MC_gift - name - address - postcode - country - email - tel) - (with-output-to-string (s) - (format s "BEGIN:VCARD~%") - (format s "REV:~A~%" (format-date-time (get-universal-time) :xml-style t)) - (format s "VERSION:2.1~%") - (format s "FN:~A~%" name) - (format s "ADR;DOM;HOME;ENCODING=QUOTED-PRINTABLE:;;~A;;;~A;~A~%" (regex-replace-all #?r"\r?\n" address "=0D=0A") postcode country) - (format s "TEL;WORK;HOME:~A~%" tel) - (format s "EMAIL;PREF;INTERNET:~A~%" email) - (format s "URL;WORK:~A/edit-sponsor/~A~%" worldpay-test::*website-url* MC_sponsorid) - (format s "NOTE:Contract ID: ~A Sponsor ID: ~A WorldPay Transaction ID: ~A Donationcert yearly: ~A Gift: ~A~%" - cartId - MC_sponsorid - transId - (if MC_donationcert-yearly "Yes" "No") - (if MC_gift "Yes" "No")) - (format s "END:VCARD~%")))) + (handler-case + (with-query-params (request cartId + transId + MC_sponsorid + MC_donationcert-yearly + MC_gift + name + address + postcode + countryString + email + tel) + (with-output-to-string (s) + (format s "BEGIN:VCARD~%") + (format s "REV:~A~%" (format-date-time (get-universal-time) :xml-style t)) + (format s "VERSION:2.1~%") + (format s "FN:~A~%" name) + (format s "ADR;DOM;HOME;ENCODING=QUOTED-PRINTABLE:;;~A;;;~@[~A~];~A~%" (regex-replace-all #?r"\r?\n" address "=0D=0A") postcode countryString) + (when tel + (format s "TEL;WORK;HOME:~A~%" tel)) + (format s "EMAIL;PREF;INTERNET:~A~%" email) + (format s "URL;WORK:~A/edit-sponsor/~A~%" worldpay-test::*website-url* MC_sponsorid) + (format s "NOTE:Contract ID: ~A Sponsor ID: ~A WorldPay Transaction ID: ~A Donationcert yearly: ~A Gift: ~A~%" + cartId + MC_sponsorid + transId + (if MC_donationcert-yearly "Yes" "No") + (if MC_gift "Yes" "No")) + (format s "END:VCARD~%"))) + (error (e) + (warn "vcard could not be generated: ~A~%" e) + "")))
(defun mail-request-parameters (req subject) (let ((mime (make-instance 'cl-mime:multipart-mime