lib/popcorn: add response handler for csv documents
authorAlexandre Terrasa <alexandre@moz-code.org>
Sun, 12 Feb 2017 03:13:45 +0000 (22:13 -0500)
committerAlexandre Terrasa <alexandre@moz-code.org>
Sun, 12 Feb 2017 03:13:45 +0000 (22:13 -0500)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

lib/popcorn/pop_handlers.nit

index 8d66cc9..f55126f 100644 (file)
@@ -20,6 +20,7 @@ module pop_handlers
 import pop_routes
 import json::static
 import json
+import csv
 
 # Class handler for a route.
 #
@@ -459,6 +460,16 @@ 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)