Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

vipera-npm-registry / de-motifconnector-plugin   js

Repository URL to install this package:

Version: 1.2.1 

/ src / browser / MotifConnectorProxy.js

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);