File: /python/moda/public_html/tech/old/assets/js/whmcs/http.js
/**
* WHMCS HTTP module
*
* @copyright Copyright (c) WHMCS Limited 2005-2018
* @license http://www.whmcs.com/license/ WHMCS Eula
*/
(function(module) {
if (!WHMCS.hasModule('http')) {
WHMCS.loadModule('http', module);
}
})({
jqClient: function () {
_getSettings = function (url, data, success, dataType)
{
if (typeof url === 'object') {
/*
Settings may be the only argument
*/
return url;
}
if (typeof data === 'function') {
/*
If 'data' is omitted, 'success' will come in its place
*/
success = data;
data = null;
}
return {
url: url,
data: data,
success: success,
dataType: dataType
};
};
/**
* @param url
* @param data
* @param success
* @param dataType
* @returns {*}
*/
this.get = function (url, data, success, dataType)
{
return WHMCS.http.client.request(
jQuery.extend(
_getSettings(url, data, success, dataType),
{
type: 'GET'
}
)
);
};
/**
* @param url
* @param data
* @param success
* @param dataType
* @returns {*}
*/
this.post = function (url, data, success, dataType)
{
return WHMCS.http.client.request(
jQuery.extend(
_getSettings(url, data, success, dataType),
{
type: 'POST'
}
)
);
};
/**
* @param options
* @returns {*}
*/
this.jsonGet = function (options) {
options = options || {};
this.get(options.url, options.data, function(response) {
if (response.warning) {
console.log('[WHMCS] Warning: ' + response.warning);
if (typeof options.warning === 'function') {
options.warning(response.warning);
}
} else if (response.error) {
console.log('[WHMCS] Error: ' + response.error);
if (typeof options.error === 'function') {
options.error(response.error);
}
} else {
if (typeof options.success === 'function') {
options.success(response);
}
}
}, 'json').error(function(xhr, errorMsg){
console.log('[WHMCS] Error: ' + errorMsg);
if (typeof options.fail === 'function') {
options.fail(errorMsg);
}
}).always(function() {
if (typeof options.always === 'function') {
options.always();
}
});
};
/**
* @param options
* @returns {*}
*/
this.jsonPost = function (options) {
options = options || {};
this.post(options.url, options.data, function(jsonResponse, httpStatusText, jqXHR) {
if (jsonResponse.warning) {
console.log('[WHMCS] Warning: ' + jsonResponse.warning);
if (typeof options.warning === 'function') {
options.warning(jsonResponse.warning, jsonResponse, jqXHR);
}
} else if (jsonResponse.error) {
console.log('[WHMCS] Error: ' + jsonResponse.error);
if (typeof options.error === 'function') {
options.error(jsonResponse.error, jsonResponse, jqXHR);
}
} else if (typeof options.success === 'function') {
options.success(jsonResponse, jqXHR);
}
}, 'json')
.fail(function(jqXHR, jqResponseType, httpStatusText){
console.log('[WHMCS] Fail: ' + jqResponseType);
if (typeof options.fail === 'function') {
options.fail(jqResponseType, jqXHR.responseJSON, jqXHR);
}
})
.always(function(jqXHR, jqResponseType, httpStatusText) {
if (typeof options.always === 'function') {
options.always(jqXHR);
}
});
};
return this;
},
client: function () {
var methods = ['get', 'post', 'put', 'delete'];
var client = this;
_beforeRequest = function (settings)
{
/*
Enforcing dataType was found to break many invocations expecting HTML back.
If/when those are refactored, this may be uncommented to enforce a safer
data transit.
*/
/*if (typeof settings.dataType === 'undefined') {
settings.dataType = 'json';
}*/
if (typeof settings.type === 'undefined') {
// default request type is GET
settings.type = 'GET';
}
/*
Add other preprocessing here if required
*/
return settings;
};
this.request = function (settings)
{
settings = _beforeRequest(settings || {});
return jQuery.ajax(settings);
};
/*
Create shortcut methods for methods[] array above
*/
jQuery.each(methods, function(index, method) {
client[method] = (function(method, client) {
return function (settings)
{
settings = settings || {};
settings.type = method.toUpperCase();
return client.request(settings);
}
})(method, client);
});
return this;
}
});