Welcome to the CHICKEN Scheme pasting service

useful bits of knodium-app-server for C-Keen added by andyjpb on Mon Apr 28 17:02:24 2014

(define (read-request-data req)
  (let ((len (header-value 'content-length (request-headers req))))
    ;; If the header is not available, this will read until EOF
    (if len
    (read-string len (request-port req)))))


(define (print-request request)
  (for-each
    (lambda (f)
      (display (conc "<h2>" (car f) "</h2>"))
      (display (conc "<pre>" (htmlize (->string ((cdr f) request))) "</pre>")))
    `(("uri" . ,request-uri)
      ("port" . ,request-port)
      ("method" . ,request-method)
      ("major" . ,request-major)
      ("minor" . ,request-minor)
      ("headers" . ,request-headers))))

(define (request-inspector reply client instance . args)
  (let ((request-data (read-request-data (current-request))))
    (apply reply-with-request-inspector reply client instance request-data args)))

(define (reply-with-request-inspector reply client instance request-data . args)
  (parameterize ((http-renderer (lambda (client message) message)))
		(reply
		  '(render ok)
		  (with-output-to-string (lambda ()
					   (display "<h1>args</h1>")
					   (display "<pre>")
					   (display args)
					   (display "</pre>")
					   (display "<h1>current-request</h1>")
					   (display "<pre>")
					   (write-request (update-request (current-request) port: (current-output-port)))
					   (display "</pre>")
					   (display "<h2>request body</h2>")
					   (display "<pre>")
					   (display request-data) ; use form-urldecode from uri-common
					   (display "</pre>")
					   (display "<pre>")
					   (pp (form-urldecode request-data))
					   (display "</pre>")
					   (print-request (current-request))
					   (display "<pre>")
					   (display (htmlize (with-output-to-string (lambda () (pp (headers->list (request-headers (current-request))))))))
					   (display "</pre>")
					   (display "<h1>current-response</h1>")
					   (display "<pre>")
					   (write-response (update-response (current-response) port: (current-output-port)))
					   (display "</pre>")
					   )))))

-----

(let ((request-data (read-request-data (current-request))))
    (or (and-let*
	  (
	   (csrf-token (if (string? client) client (client-csrf-token client)))
	   (form-data (form-urldecode request-data))

Your annotation:

Enter a new annotation:

Your nick:
The title of your paste:
Your paste (mandatory) :
Which egg provides `string-pad-right'?
Visually impaired? Let me spell it for you (wav file) download WAV