Arlolra has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/188118

Change subject: Better error handling for config requests
......................................................................

Better error handling for config requests

 * WikiConf expects resultConf to be null (not {}) to fall back to the
   baseConfig.

Change-Id: I30c709fb194531858b6283a804570cf16c359204
---
M lib/mediawiki.ApiRequest.js
M lib/mediawiki.parser.environment.js
2 files changed, 19 insertions(+), 18 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid 
refs/changes/18/188118/1

diff --git a/lib/mediawiki.ApiRequest.js b/lib/mediawiki.ApiRequest.js
index 6b31a3f..faf2b74 100644
--- a/lib/mediawiki.ApiRequest.js
+++ b/lib/mediawiki.ApiRequest.js
@@ -750,24 +750,26 @@
 
 util.inherits( ConfigRequest, ApiRequest );
 
-ConfigRequest.prototype._handleJSON = function ( error, data ) {
-       if ( error ) {
-               this._processListeners( error, {} );
-               return;
-       }
-
-       if ( data && data.query ) {
-               this._processListeners( null, data.query );
-       } else if ( data && data.error ) {
-               if ( data.error.code === 'readapidenied' ) {
-                       error = new AccessDeniedError();
+ConfigRequest.prototype._handleJSON = function( error, data ) {
+       var resultConf = null;
+       if ( !error ) {
+               if ( data && data.query ) {
+                       error = null;
+                       resultConf = data.query;
+               } else if ( data && data.error ) {
+                       if ( data.error.code === 'readapidenied' ) {
+                               error = new AccessDeniedError();
+                       } else {
+                               error = new Error('Something happened on the 
API side. Message: ' +
+                                       data.error.code + ': ' + 
data.error.info );
+                       }
                } else {
-                       error = new Error( 'Something happened on the API side. 
Message: ' + data.error.code + ': ' + data.error.info );
+                       error = new Error("Config request returned no 
result.\n" +
+                               JSON.stringify(data, "\t", 2));
+                       error.stack = null;
                }
-               this._processListeners( error, {} );
-       } else {
-               this._processListeners( null, {} );
        }
+       this._processListeners( error, resultConf );
 };
 
 /**
diff --git a/lib/mediawiki.parser.environment.js 
b/lib/mediawiki.parser.environment.js
index da42fc6..081e65b 100644
--- a/lib/mediawiki.parser.environment.js
+++ b/lib/mediawiki.parser.environment.js
@@ -299,11 +299,10 @@
  * @param {Error} cb.err
  */
 MWParserEnvironment.prototype.switchToConfig = function ( prefix, cb ) {
-       function setupWikiConfig(env, apiURI, error, config) {
+       function setupWikiConfig(env, apiURI, error, resultConf) {
                if ( error === null ) {
-                       env.conf.wiki = new WikiConfig( config, prefix, apiURI, 
env.getAPIProxy(prefix) );
+                       env.conf.wiki = new WikiConfig( resultConf, prefix, 
apiURI, env.getAPIProxy(prefix) );
                        env.confCache[prefix] = env.conf.wiki;
-
                }
                cb( error );
        }

-- 
To view, visit https://gerrit.wikimedia.org/r/188118
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I30c709fb194531858b6283a804570cf16c359204
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Arlolra <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to