GT2/GT2-Android/node_modules/rest-facade/src/RequestOptions.js

58 lines
1.2 KiB
JavaScript

var URL = require('./URL.js');
var RequestOptions = function(method, url, params, data, callback) {
this.method = method;
this.data = data;
this.params = params;
this.callback = callback;
this.url = new URL(
url.protocol,
url.host,
url.baseUrl.path,
params
).toString();
};
RequestOptions.prototype.fromArguments = function(args, options) {
var reqData = {
url: null,
params: null,
data: null
};
var singleArgument = options.singleArgument || 'params';
var callback = null;
// Signature (params, data, callback).
if (arguments.length === 3) {
reqData.params = arguments[0];
reqData.data = arguments[1];
callback = arguments[2];
// Signature (params|data, callback).
} else if (arguments.length === 2 && arguments[1] instanceof Function) {
reqData[singleArgument]= arguments[0];
callback = arguments[1];
// Signature (params, data).
} else if (arguments.length === 2) {
reqData.params = arguments[0];
reqData.data = arguments[1];
// Signature (params|data).
} else {
reqData[singleArgument] = arguments[0];
}
return new RequestOptions(
options.method,
options.url,
reqData.params,
reqData.data,
callback
);
};
module.exports = RequestOptions;