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;