lib/popcorn: move json related services to `pop_json`
authorAlexandre Terrasa <alexandre@moz-code.org>
Thu, 25 May 2017 23:32:59 +0000 (19:32 -0400)
committerAlexandre Terrasa <alexandre@moz-code.org>
Fri, 2 Jun 2017 14:30:55 +0000 (10:30 -0400)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

lib/popcorn/pop_handlers.nit
lib/popcorn/pop_json.nit

index 6b1e825..e657d68 100644 (file)
@@ -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
index db80ebe..64a06e1 100644 (file)
@@ -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