factor/basis/http/server/responses/responses.factor

41 lines
1.0 KiB
Factor
Raw Normal View History

2008-06-02 16:00:03 -04:00
! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
2009-02-05 22:17:03 -05:00
USING: math.parser http accessors kernel xml.syntax xml.writer
io io.streams.string io.encodings.utf8 ;
2008-06-02 16:00:03 -04:00
IN: http.server.responses
: <content> ( body content-type -- response )
<response>
200 >>code
"Document follows" >>message
utf8 >>content-charset
2008-06-02 16:00:03 -04:00
swap >>content-type
swap >>body ;
: trivial-response-body ( code message -- )
2009-01-30 20:28:16 -05:00
<XML
<html>
<body>
<h1><-> <-></h1>
</body>
</html>
XML> write-xml ;
2008-06-02 16:00:03 -04:00
: <trivial-response> ( code message -- response )
2dup [ trivial-response-body ] with-string-writer
"text/html" <content>
swap >>message
swap >>code ;
: <304> ( -- response )
304 "Not modified" <trivial-response> ;
: <403> ( -- response )
403 "Forbidden" <trivial-response> ;
: <400> ( -- response )
400 "Bad request" <trivial-response> ;
: <404> ( -- response )
404 "Not found" <trivial-response> ;