58 lines
1.2 KiB
JavaScript
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;
|