Restler freely mutates the contents of the options object, causing issues such as #230. This PR uses the already available mixin function to prevent this from happening, allowing multiple calls utilizing the same options object to function. I added two new tests as well, which did not pass before I made the change.
A possible regression due to this change could be a case where someone calls restler.get(url, options) followed by restler.request(url, options). Before this change was made, .get would have populated the options object and made it usable by the .request function, after this change, options will no longer be mutated by the call to .get so the subsequent .request may fail if the options were not sufficiently set in the first place. But I think the good outweighs the bad here, especially for POST/PUT/PATCH functions.
Restler freely mutates the contents of the options object, causing issues such as #230. This PR uses the already available mixin function to prevent this from happening, allowing multiple calls utilizing the same options object to function. I added two new tests as well, which did not pass before I made the change.
A possible regression due to this change could be a case where someone calls restler.get(url, options) followed by restler.request(url, options). Before this change was made, .get would have populated the options object and made it usable by the .request function, after this change, options will no longer be mutated by the call to .get so the subsequent .request may fail if the options were not sufficiently set in the first place. But I think the good outweighs the bad here, especially for POST/PUT/PATCH functions.