module pop_handlers
import pop_routes
+import json::static
import json
+import csv
# Class handler for a route.
#
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