Repository URL to install this package:
var configHelper = cordova.require('cordova/confighelper');
var currentConfig= undefined;
function NetworkHandler(serverUrl){
this.serverUrl = serverUrl;
}
NetworkHandler.prototype.setServerUrl = function(serverUrl){
this.serverUrl = serverUrl;
}
NetworkHandler.prototype.getServerUrl = function(){
return this.serverUrl;
}
NetworkHandler.prototype.sendRequest = function (request,success,fail) {
var data = JSON.stringify(request);
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
if(this.status == 200){
success(JSON.parse(this.responseText));
}else{
fail({
errorCode:'NATIVE_CONNECTION_ERROR',
errorMessage: this.responseText
});
}
}
});
xhr.open("POST", this.serverUrl + "/json");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("cache-control", "no-cache");
try {
xhr.send(data);
} catch (e) {
console.log("NetworkHandler error",e);
}
};
function initConnector(callback){
configHelper.readConfig(function(config) {
this.currentConfig = config;
if(!sharedNetworkHandler){
sharedNetworkHandler = new NetworkHandler(config.getPreferenceValue('motif.serverUrl') || 'http://localhost:3000');
}
if(callback){
callback();
}
}, function(err) {
console.error(err);
});
}
var sharedNetworkHandler;
initConnector();
var ProxyDef = {
serverRequest: function (success, error,params) {
var request= params[0];
if(!sharedNetworkHandler){
initConnector(function(){
sharedNetworkHandler.sendRequest(request,success,error);
});
return;
}
sharedNetworkHandler.sendRequest(request,success,error);
}
};
module.exports = ProxyDef;
require("cordova/exec/proxy").add("MotifConnector", module.exports);