From 08ad9611235b7deee5a5ddc6a4316e100697dee9 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Thu, 21 Apr 2016 16:02:33 +0200 Subject: [PATCH] Adds support to return multiple errors in BaseController.sendError --- lib/cartodb/controllers/base.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/cartodb/controllers/base.js b/lib/cartodb/controllers/base.js index 9945ff5a..79d4e407 100644 --- a/lib/cartodb/controllers/base.js +++ b/lib/cartodb/controllers/base.js @@ -197,7 +197,10 @@ BaseController.prototype.send = function(req, res, body, status, headers) { // jshint maxcomplexity:6 BaseController.prototype.sendError = function(req, res, err, label) { + var allErrors = Array.isArray(err) ? err : [err]; label = label || 'UNKNOWN'; + err = allErrors[0] || new Error(label); + allErrors[0] = err; var statusCode = findStatusCode(err); @@ -208,7 +211,7 @@ BaseController.prototype.sendError = function(req, res, err, label) { statusCode = 200; } - var errorResponseBody = { errors: [errorMessage(err)] }; + var errorResponseBody = { errors: allErrors.map(errorMessage) }; this.send(req, res, errorResponseBody, statusCode); };