Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
added a contract for list-response in order to provide a better error…
… message in response to http://planet.plt-scheme.org/trac/ticket/128; reindented some code too
  • Loading branch information
rob7hunter committed Nov 21, 2008
1 parent bcd6614 commit 78e2bab
Showing 1 changed file with 22 additions and 6 deletions.
28 changes: 22 additions & 6 deletions web-support.scm
Expand Up @@ -4,7 +4,8 @@
(lib "xml.ss" "xml")
net/url
scheme/serialize
(only-in scheme/contract provide/contract)
(rename-in scheme/contract
(any c:any))
(planet "web.scm" ("soegaard" "web.plt" 2 1))
)

Expand All @@ -18,7 +19,6 @@
img
raw-str
with-binding ; from web.plt
list-response
basic-response
xexpr-if
url+query
Expand All @@ -28,6 +28,22 @@
find-binding
)

;;
;; list-response
;;
(define (any-responses? lst)
(any (lambda (elt)
(or (response/full? elt) (response/incremental? elt) (response/basic? elt)))
lst))
(provide/contract
(list-response (->*
;; required
((not/c any-responses?))
;; optional
(#:type bytes? #:extras list?)
;; returns
response?)))
;;
(define (list-response content-lst #:type (type #"text/html") #:extras (extras '()))
(basic-response (append-map (lambda (content) (map xexpr->string
(xexpr->de-grouped-xexprs content)))
Expand All @@ -47,10 +63,10 @@
(define-serializable-struct (binding/string:form binding/string) (value))
(define-serializable-struct (binding/string:file binding/string) (filename content))
(provide/contract
[struct binding/string ([id string?])]
[struct (binding/string:form binding/string) ([id string?]
[value string?])]
[struct (binding/string:file binding/string) ([id string?]
[struct binding/string ([id string?])]
[struct (binding/string:form binding/string) ([id string?]
[value string?])]
[struct (binding/string:file binding/string) ([id string?]
[filename string?]
[content bytes?])])

Expand Down

0 comments on commit 78e2bab

Please sign in to comment.