From dd8d7e56001998f7f387bdb8c3c0d5ba5262dda3 Mon Sep 17 00:00:00 2001 From: Alexandre Terrasa Date: Thu, 25 May 2017 19:32:59 -0400 Subject: [PATCH 1/1] lib/popcorn: move json related services to `pop_json` Signed-off-by: Alexandre Terrasa --- lib/popcorn/pop_handlers.nit | 22 ---------------------- lib/popcorn/pop_json.nit | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 22 deletions(-) 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 -- 1.7.9.5