X-Git-Url: http://nitlanguage.org diff --git a/lib/popcorn/pop_handlers.nit b/lib/popcorn/pop_handlers.nit index 1a22db6..f55126f 100644 --- a/lib/popcorn/pop_handlers.nit +++ b/lib/popcorn/pop_handlers.nit @@ -18,7 +18,9 @@ module pop_handlers import pop_routes +import json::static import json +import csv # Class handler for a route. # @@ -458,18 +460,31 @@ redef class HttpResponse end end + # Write data as CSV and set the right content type header. + fun csv(csv: nullable CsvDocument, status: nullable Int) do + header["Content-Type"] = media_types["csv"].as(not null) + if csv == null then + send(null, status) + else + send(csv.write_to_string, status) + end + end + # Write error as JSON and set the right content type header. fun json_error(error: nullable Jsonable, status: nullable Int) do json(error, status) end # Redirect response to `location` + # + # Use by default 303 See Other as it is the RFC + # way to redirect web applications to a new URI. fun redirect(location: String, status: nullable Int) do header["Location"] = location if status != null then status_code = status else - status_code = 302 + status_code = 303 end check_sent sent = true