summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Maps/resources/api.js
blob: 5cb70741b4abdf83bff7ab7042c76555e0522f4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
(function($, mw) {
	'use strict';

	function canEditPage(pageName) {
		let deferred = $.Deferred();

		new mw.Api().get({
			action: 'query',
			format: 'json',
			titles: pageName,
			prop: 'info',
			intestactions: 'edit'
		}).done(function(response) {
			// Next level usability in the MW API:
			let canEdit = response.query.pages[Object.keys(response.query.pages)[0]].actions.hasOwnProperty('edit');
			deferred.resolve(canEdit);
		});

		return deferred.promise();
	}

	function getLatestRevision(pageName) {
		let deferred = $.Deferred();

		new mw.Api().post({
			action: 'query',
			prop: 'revisions',
			rvlimit: 1,
			rvprop: [ 'ids', 'content' ],
			titles: pageName
		}).done(function(response) {
			deferred.resolve(response.query.pages[Object.keys(response.query.pages)[0]].revisions[0]);
		});

		return deferred.promise();
	}

	if (!window.maps) {window.maps = {};}

	window.maps.api = {
		canEditPage: canEditPage,
		getLatestRevision: getLatestRevision
	};
})(window.jQuery, window.mediaWiki);