mirror of
https://github.com/Karaka-Management/jsOMS.git
synced 2026-02-11 15:18:40 +00:00
Implementing better response handling
Now multiple responses behaviors are possible for. One for each status code (200, 404 etc.)
This commit is contained in:
parent
b8e665529a
commit
86d715b4e6
|
|
@ -25,10 +25,16 @@
|
||||||
this.uri = typeof uri !== 'undefined' ? uri : null;
|
this.uri = typeof uri !== 'undefined' ? uri : null;
|
||||||
this.method = typeof method !== 'undefined' ? method : jsOMS.Message.Request.RequestMethod.GET;
|
this.method = typeof method !== 'undefined' ? method : jsOMS.Message.Request.RequestMethod.GET;
|
||||||
this.requestHeader = [];
|
this.requestHeader = [];
|
||||||
this.success = null;
|
this.result = {};
|
||||||
this.type = typeof type !== 'undefined' ? type : jsOMS.Message.Response.ResponseType.JSON;
|
this.type = typeof type !== 'undefined' ? type : jsOMS.Message.Response.ResponseType.JSON;
|
||||||
this.data = {};
|
this.data = {};
|
||||||
|
|
||||||
|
// todo: create log;
|
||||||
|
this.result[0] = function ()
|
||||||
|
{
|
||||||
|
console.log('invalid response');
|
||||||
|
};
|
||||||
|
|
||||||
/** global: XMLHttpRequest */
|
/** global: XMLHttpRequest */
|
||||||
this.xhr = new XMLHttpRequest();
|
this.xhr = new XMLHttpRequest();
|
||||||
};
|
};
|
||||||
|
|
@ -75,8 +81,10 @@
|
||||||
jsOMS.Message.Request.Request.getOS = function ()
|
jsOMS.Message.Request.Request.getOS = function ()
|
||||||
{
|
{
|
||||||
for (let os in jsOMS.Message.Request.OSType) {
|
for (let os in jsOMS.Message.Request.OSType) {
|
||||||
if (navigator.appVersion.toLowerCase().indexOf(jsOMS.Message.Request.OSType[os]) !== -1) {
|
if (jsOMS.Message.Request.OSType.hasOwnProperty(os)) {
|
||||||
return jsOMS.Message.Request.OSType[os];
|
if (navigator.appVersion.toLowerCase().indexOf(jsOMS.Message.Request.OSType[os]) !== -1) {
|
||||||
|
return jsOMS.Message.Request.OSType[os];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -223,7 +231,23 @@
|
||||||
*/
|
*/
|
||||||
jsOMS.Message.Request.Request.prototype.setSuccess = function (callback)
|
jsOMS.Message.Request.Request.prototype.setSuccess = function (callback)
|
||||||
{
|
{
|
||||||
this.success = callback;
|
this.result[200] = callback;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set result callback.
|
||||||
|
*
|
||||||
|
* @param {int} status Http response status
|
||||||
|
* @param {function} callback Callback
|
||||||
|
*
|
||||||
|
* @method
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||||
|
*/
|
||||||
|
jsOMS.Message.Request.Request.prototype.setResultCallback = function (status, callback)
|
||||||
|
{
|
||||||
|
this.result[status] = callback;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -337,15 +361,23 @@
|
||||||
|
|
||||||
self.xhr.onreadystatechange = function ()
|
self.xhr.onreadystatechange = function ()
|
||||||
{
|
{
|
||||||
if (self.xhr.readyState === 4 && self.xhr.status === 200) {
|
switch (self.xhr.readyState) {
|
||||||
self.success(self.xhr);
|
case 4:
|
||||||
} else if (self.xhr.readyState === 2) {
|
if (typeof this.result[self.xhr.status] === 'undefined') {
|
||||||
// todo: handle server received request
|
self.result[0](self.xhr);
|
||||||
} else if (self.xhr.readyState === 3) {
|
} else {
|
||||||
// todo: server is handling request
|
self.result[self.xhr.status](self.xhr);
|
||||||
} else {
|
}
|
||||||
// todo: create handler for error returns
|
break;
|
||||||
console.log(self.xhr);
|
case 2:
|
||||||
|
// todo: handle server received request
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
// todo: server is handling request
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// todo: create handler for error returns
|
||||||
|
console.log(self.xhr);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user