Krinkle has uploaded a new change for review.
https://gerrit.wikimedia.org/r/189899
Change subject: mediawiki.api.login: Chain then() instead of Deferred wrapping
......................................................................
mediawiki.api.login: Chain then() instead of Deferred wrapping
No need to wrap a promise and manually forwarding fail().
Using "then()" does this by default.
Remove redundant 'data.login' assertion. API errors are already
handled at this point.
Handle login error before success to allow a clean function exit.
Change-Id: I032226b1e2b362c61eb2c6de0c7f5ebe2ed25b7e
---
M resources/src/mediawiki.api/mediawiki.api.login.js
1 file changed, 17 insertions(+), 21 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/99/189899/1
diff --git a/resources/src/mediawiki.api/mediawiki.api.login.js
b/resources/src/mediawiki.api/mediawiki.api.login.js
index ccbae06..88c8caa 100644
--- a/resources/src/mediawiki.api/mediawiki.api.login.js
+++ b/resources/src/mediawiki.api/mediawiki.api.login.js
@@ -14,8 +14,7 @@
* @return {jQuery.Promise} See mw.Api#post
*/
login: function ( username, password ) {
- var params, request,
- deferred = $.Deferred(),
+ var params, apiPromise,
api = this;
params = {
@@ -24,25 +23,22 @@
lgpassword: password
};
- request = api.post( params );
- request.fail( deferred.reject );
- request.done( function ( data ) {
- params.lgtoken = data.login.token;
- api.post( params )
- .fail( deferred.reject )
- .done( function ( data ) {
- var code;
- if ( data.login &&
data.login.result === 'Success' ) {
- deferred.resolve( data
);
- } else {
- // Set proper error
code whenever possible
- code = data.error &&
data.error.code || 'unknown';
- deferred.reject( code,
data );
- }
- } );
- } );
-
- return deferred.promise( { abort: request.abort } );
+ apiPromise = api.post( params );
+ return apiPromise
+ .then( function ( data ) {
+ params.lgtoken = data.login.token;
+ return api.post( params )
+ .then( function ( data ) {
+ var code;
+ if ( data.login.result
!== 'Success' ) {
+ // Set proper
error code whenever possible
+ code =
data.error && data.error.code || 'unknown';
+ return
$.Deferred().reject( code, data );
+ }
+ return data;
+ } );
+ } )
+ .promise( { abort: apiPromise.abort } );
}
} );
--
To view, visit https://gerrit.wikimedia.org/r/189899
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I032226b1e2b362c61eb2c6de0c7f5ebe2ed25b7e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Krinkle <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits