(function() {
/**
* @augments Help4.jscore.ControlBase
* @property {string} url
* @property {string} token
*/
Help4.tracking.connector.WebAnalytics = class extends Help4.jscore.ControlBase{
/**
* @override
* @param {Help4.tracking.Tracking.Connector} params
*/
constructor(params) {
const {TYPES: T} = Help4.jscore.ControlBase;
super(params, {
params: {
url: {type: T.string_null, readonly: true},
token: {type: T.string_null, readonly: true}
}
});
}
/**
* @param {Help4.tracking.Tracking.Data} data
* @returns {Promise<*>}
*/
track({verb, object, context}) {
const {url, token} = this;
if (!url || !token) return Help4.Promise.resolve();
const query = [
'idsite=' + token,
'custom11=' + verb.id,
'custom12=' + context.id || '',
'custom13=' + object.id || '',
'custom14=' + object.language || '',
'custom15=' + object.name || '',
'custom16=' + object.objectType || '',
'custom17=' + object.product || '',
'custom18=' + object.screenId || '',
'custom19=' + object.sessionId || '',
'custom20=' + object.system || '',
'custom21=' + object.version || ''
].join('&');
return Help4.ajax.Ajax({url: url + '/log?' + query, promise: true});
}
}
})();