Jdlrobson has uploaded a new change for review.

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

Change subject: Hygiene: WikiDataApi::getClaims
......................................................................

Hygiene: WikiDataApi::getClaims

Change-Id: Ibee6fc573610da14d149add893b87d5ca459111c
---
M javascripts/modules/wikigrok/WikiDataApi.js
M javascripts/modules/wikigrok/WikiGrokDialog.js
M javascripts/modules/wikigrok/wikigrokeval.js
3 files changed, 24 insertions(+), 23 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend 
refs/changes/85/162185/1

diff --git a/javascripts/modules/wikigrok/WikiDataApi.js 
b/javascripts/modules/wikigrok/WikiDataApi.js
index 18280b0..1864bf8 100644
--- a/javascripts/modules/wikigrok/WikiDataApi.js
+++ b/javascripts/modules/wikigrok/WikiDataApi.js
@@ -7,18 +7,29 @@
        WikiDataApi = Api.extend( {
                apiUrl: 'https://www.wikidata.org/w/api.php',
 
-               initialize: function() {
+               initialize: function( options ) {
+                       this.id = options.id;
                        Api.prototype.initialize.apply( this, arguments );
+               },
+               ajax: function( data, options ) {
+                       options = options || {};
+                       options.url = this.apiUrl;
+                       options.dataType = 'jsonp';
+                       return Api.prototype.ajax.call( this, data, options );
+               },
+               getClaims: function() {
+                       return this.ajax( {
+                               action: 'wbgetentities',
+                               ids: this.id,
+                               props: 'claims',
+                               format: 'json'
+                       } );
                },
                getOccupations: function( occupationId ) {
                        return this.ajax( {
                                        action: 'wbgetentities',
                                        props: 'labels',
                                        ids: occupationId
-                               },
-                               {
-                                       url: this.apiUrl,
-                                       dataType: 'jsonp'
                                } );
                }
        } );
diff --git a/javascripts/modules/wikigrok/WikiGrokDialog.js 
b/javascripts/modules/wikigrok/WikiGrokDialog.js
index 2a27f52..b00e150 100644
--- a/javascripts/modules/wikigrok/WikiGrokDialog.js
+++ b/javascripts/modules/wikigrok/WikiGrokDialog.js
@@ -37,7 +37,7 @@
 
                initialize: function( options ) {
                        this.apiWikiGrok = new WikiGrokApi( { itemId: 
options.itemId } );
-                       this.apiWikiData = new WikiDataApi();
+                       this.apiWikiData = new WikiDataApi( { id: 
options.itemId } );
                        Panel.prototype.initialize.apply( this, arguments );
                },
 
diff --git a/javascripts/modules/wikigrok/wikigrokeval.js 
b/javascripts/modules/wikigrok/wikigrokeval.js
index 0bde32c..e44961c 100644
--- a/javascripts/modules/wikigrok/wikigrokeval.js
+++ b/javascripts/modules/wikigrok/wikigrokeval.js
@@ -1,26 +1,16 @@
 ( function( M, $ ) {
-       var wikidataID = mw.config.get( 'wgWikibaseItemId' ),
+       var api,
+               wikidataID = mw.config.get( 'wgWikibaseItemId' ),
                WikiGrokDialog = M.require( 'modules/wikigrok/WikiGrokDialog' ),
+               WikiDataApi = M.require( 'modules/wikigrok/WikiDataApi' ),
                WikiGrokMoreInfo = M.require( 
'modules/wikigrok/WikiGrokMoreInfo' );
 
        // Get existing Wikidata claims about this page so we can decide if 
it's appropriate
        // to display the WikiGrok interface.
        if ( !M.settings.getUserSetting( 'mfHideWikiGrok' ) ) {
-               $.ajax( {
-                       type: 'get',
-                       url: 'https://www.wikidata.org/w/api.php',
-                       data: {
-                               'action': 'wbgetentities',
-                               'ids': wikidataID,
-                               'props': 'claims',
-                               'format': 'json'
-                       },
-                       // Using JSONP so we aren't restricted by cross-site 
rules. This isn't
-                       // strictly needed on the Wikimedia cluster since it 
has CORS exceptions
-                       // for requests from other Wikimedia sites, but this 
makes it easy to
-                       // test locally.
-                       dataType: 'jsonp',
-                       success: function( data ) {
+               api = new WikiDataApi( { id: wikidataID });
+               api.getClaims().done(
+                       function( data ) {
                                var instanceClaims,
                                        loadWikiGrokDialog = false;
 
@@ -43,7 +33,7 @@
                                        }
                                }
                        }
-               } );
+               );
        }
 
        // Make OverlayManager handle '#/wikigrok/moreinfo' links. We only need 
to do

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibee6fc573610da14d149add893b87d5ca459111c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Jdlrobson <[email protected]>

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

Reply via email to