Newer
Older
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
/*!
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
(function () {
// can probably be renamed and shared
angular.module('piwikApp').factory('sitesManagerApiHelper', SitesManagerAPIHelperFactory);
SitesManagerAPIHelperFactory.$inject = ['piwikApi'];
function SitesManagerAPIHelperFactory(piwikApi) {
return {
fetch: fetch,
commaDelimitedFieldToArray: commaDelimitedFieldToArray,
fetchApi: fetchApi,
fetchAction: fetchAction,
singleObjectAdaptor: singleObjectAdaptor,
valueAdaptor: valueAdaptor,
noop: noop
};
function fetch (endpoint, jsonResponseAdaptor, params) {
return function (clientHandover, additionalParams) {
params = angular.extend(params || {}, additionalParams || {});
var requestDefinition = angular.extend(endpoint, params);
var responseHandler = function (response) {
response = jsonResponseAdaptor(response);
clientHandover(response);
};
piwikApi.fetch(requestDefinition).then(responseHandler);
}
function commaDelimitedFieldToArray (value) {
return [];
return value.split(',');
}
function fetchApi(apiMethod, jsonResponseAdaptor, params) {
return fetch({method: apiMethod}, jsonResponseAdaptor, params);
}
function fetchAction(module, action, jsonResponseAdaptor, params) {
return fetch({module: module, action: action}, jsonResponseAdaptor, params);
}
function singleObjectAdaptor(response) {
return response[0];
}
function valueAdaptor(response) {
return response.value;
}
function noop(response) {
return response;
}
}
})();