From 23dfec6f22862d5a0e15b7f8b4797cbf8be5c4c9 Mon Sep 17 00:00:00 2001 From: Machiste Quintana Date: Thu, 9 Apr 2015 11:25:32 -0400 Subject: [PATCH 1/3] Implement filter function for transforming server responses --- src/definitions/behaviors/api.js | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/definitions/behaviors/api.js b/src/definitions/behaviors/api.js index 3fb277d3d..f83cfd46f 100644 --- a/src/definitions/behaviors/api.js +++ b/src/definitions/behaviors/api.js @@ -367,15 +367,22 @@ $.api = $.fn.api = function(parameters) { }, done: function(response) { module.debug('API Response Received', response); - if(settings.dataType == 'json') { - if( $.isFunction(settings.successTest) ) { - module.debug('Checking JSON returned success', settings.successTest, response); - if( settings.successTest(response) ) { - settings.onSuccess.call(context, response, $module); + if( $.isFunction(settings.filter) ) { + response = settings.filter(response); + module.debug('Response filter applied', settings.filter, response); + if(settings.dataType == 'json') { + if( $.isFunction(settings.successTest) ) { + module.debug('Checking JSON returned success', settings.successTest, response); + if( settings.successTest(response) ) { + settings.onSuccess.call(context, response, $module); + } + else { + module.debug('JSON test specified by user and response failed', response); + settings.onFailure.call(context, response, $module); + } } else { - module.debug('JSON test specified by user and response failed', response); - settings.onFailure.call(context, response, $module); + settings.onSuccess.call(context, response, $module); } } else { @@ -825,6 +832,7 @@ $.api.settings = { onError : function(errorMessage, $module) {}, onAbort : function(errorMessage, $module) {}, + filter : false, successTest : false, // errors @@ -868,4 +876,4 @@ $.api.settings = { $.api.settings.api = {}; -})( jQuery, window , document ); \ No newline at end of file +})( jQuery, window , document ); From 85c75534b9733c28a5ec732450f2c86f33c6797b Mon Sep 17 00:00:00 2001 From: Machiste Quintana Date: Thu, 9 Apr 2015 11:28:24 -0400 Subject: [PATCH 2/3] Refactor conditional --- src/definitions/behaviors/api.js | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/definitions/behaviors/api.js b/src/definitions/behaviors/api.js index f83cfd46f..926a73184 100644 --- a/src/definitions/behaviors/api.js +++ b/src/definitions/behaviors/api.js @@ -370,19 +370,16 @@ $.api = $.fn.api = function(parameters) { if( $.isFunction(settings.filter) ) { response = settings.filter(response); module.debug('Response filter applied', settings.filter, response); - if(settings.dataType == 'json') { - if( $.isFunction(settings.successTest) ) { - module.debug('Checking JSON returned success', settings.successTest, response); - if( settings.successTest(response) ) { - settings.onSuccess.call(context, response, $module); - } - else { - module.debug('JSON test specified by user and response failed', response); - settings.onFailure.call(context, response, $module); - } + } + if(settings.dataType == 'json') { + if( $.isFunction(settings.successTest) ) { + module.debug('Checking JSON returned success', settings.successTest, response); + if( settings.successTest(response) ) { + settings.onSuccess.call(context, response, $module); } else { - settings.onSuccess.call(context, response, $module); + module.debug('JSON test specified by user and response failed', response); + settings.onFailure.call(context, response, $module); } } else { @@ -392,6 +389,7 @@ $.api = $.fn.api = function(parameters) { else { settings.onSuccess.call(context, response, $module); } + } }, error: function(xhr, status, httpMessage) { var From e1f25a21d0643141f89cd42933561008cea2e9b4 Mon Sep 17 00:00:00 2001 From: Machiste Quintana Date: Thu, 9 Apr 2015 11:29:43 -0400 Subject: [PATCH 3/3] Remove extra brace --- src/definitions/behaviors/api.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/definitions/behaviors/api.js b/src/definitions/behaviors/api.js index 926a73184..8ab2645d9 100644 --- a/src/definitions/behaviors/api.js +++ b/src/definitions/behaviors/api.js @@ -389,7 +389,6 @@ $.api = $.fn.api = function(parameters) { else { settings.onSuccess.call(context, response, $module); } - } }, error: function(xhr, status, httpMessage) { var