From: Alexandre Terrasa Date: Thu, 25 May 2017 23:32:59 +0000 (-0400) Subject: lib/popcorn: move json related services to `pop_json` X-Git-Url: http://nitlanguage.org?hp=31420d901b96f6919d6664d86334f6a731208cf8 lib/popcorn: move json related services to `pop_json` Signed-off-by: Alexandre Terrasa --- diff --git a/lib/popcorn/pop_handlers.nit b/lib/popcorn/pop_handlers.nit index 6b1e825..e657d68 100644 --- a/lib/popcorn/pop_handlers.nit +++ b/lib/popcorn/pop_handlers.nit @@ -18,8 +18,6 @@ module pop_handlers import pop_routes -import json::static -import json import csv # Class handler for a route. @@ -450,16 +448,6 @@ redef class HttpResponse send(html, status) end - # Write data as JSON and set the right content type header. - fun json(json: nullable Serializable, status: nullable Int) do - header["Content-Type"] = media_types["json"].as(not null) - if json == null then - send(null, status) - else - send(json.to_json, status) - 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) @@ -470,16 +458,6 @@ redef class HttpResponse end end - # Write error as JSON. - # - # Format: `{"message": message, "status": status}` - fun json_error(message: String, status: Int) do - var obj = new JsonObject - obj["status"] = status - obj["message"] = message - json(obj, status) - end - # Redirect response to `location` # # Use by default 303 See Other as it is the RFC diff --git a/lib/popcorn/pop_json.nit b/lib/popcorn/pop_json.nit index db80ebe..64a06e1 100644 --- a/lib/popcorn/pop_json.nit +++ b/lib/popcorn/pop_json.nit @@ -55,6 +55,7 @@ # ~~~ module pop_json +import json import pop_handlers import pop_validation @@ -159,3 +160,26 @@ redef class Handler # Define it in each sub handlers depending on the kind of objects sent in request bodies. type BODY: Serializable end + +redef class HttpResponse + + # Write data as JSON and set the right content type header. + fun json(json: nullable Serializable, status: nullable Int) do + header["Content-Type"] = media_types["json"].as(not null) + if json == null then + send(null, status) + else + send(json.to_json, status) + end + end + + # Write error as JSON. + # + # Format: `{"message": message, "status": status}` + fun json_error(message: String, status: Int) do + var obj = new JsonObject + obj["status"] = status + obj["message"] = message + json(obj, status) + end +end