diff options
| author | simpulton | 2012-04-20 01:31:25 -0700 |
|---|---|---|
| committer | Igor Minar | 2012-04-20 12:32:33 -0700 |
| commit | e61fd1b43a55496c11c63da7ca2fc05b88d44043 (patch) | |
| tree | 007761363c98350ea42cda871b73dfb62d49b1a0 /src | |
| parent | ce15a3e0491f7acafcdf0ff07f75d0c2c9819164 (diff) | |
| download | angular.js-e61fd1b43a55496c11c63da7ca2fc05b88d44043.tar.bz2 | |
feat($resource): support HTTP PATCH method
Properly serialize data into request body instead of url.
Closes #887
Diffstat (limited to 'src')
| -rw-r--r-- | src/ngMock/angular-mocks.js | 30 | ||||
| -rw-r--r-- | src/ngResource/resource.js | 6 |
2 files changed, 32 insertions, 4 deletions
diff --git a/src/ngMock/angular-mocks.js b/src/ngMock/angular-mocks.js index 0b8f016f..a2d4f88b 100644 --- a/src/ngMock/angular-mocks.js +++ b/src/ngMock/angular-mocks.js @@ -1113,6 +1113,20 @@ function createHttpBackendMock($delegate, $browser) { /** * @ngdoc method + * @name angular.module.ngMock.$httpBackend#expectPATCH + * @methodOf angular.module.ngMock.$httpBackend + * @description + * Creates a new request expectation for PATCH requests. For more info see `expect()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp)=} data HTTP request body. + * @param {Object=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` method that control how a matched + * request is handled. + */ + + /** + * @ngdoc method * @name angular.module.ngMock.$httpBackend#expectJSONP * @methodOf angular.module.ngMock.$httpBackend * @description @@ -1220,7 +1234,7 @@ function createHttpBackendMock($delegate, $browser) { } }); - angular.forEach(['PUT', 'POST'], function(method) { + angular.forEach(['PUT', 'POST', 'PATCH'], function(method) { $httpBackend[prefix + method] = function(url, data, headers) { return $httpBackend[prefix](method, url, data, headers) } @@ -1485,6 +1499,20 @@ angular.module('ngMockE2E', ['ng']).config(function($provide) { /** * @ngdoc method + * @name angular.module.ngMockE2E.$httpBackend#whenPATCH + * @methodOf angular.module.ngMockE2E.$httpBackend + * @description + * Creates a new backend definition for PATCH requests. For more info see `when()`. + * + * @param {string|RegExp} url HTTP url. + * @param {(string|RegExp)=} data HTTP request body. + * @param {(Object|function(Object))=} headers HTTP headers. + * @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that + * control how a matched request is handled. + */ + +/** + * @ngdoc method * @name angular.module.ngMockE2E.$httpBackend#whenJSONP * @methodOf angular.module.ngMockE2E.$httpBackend * @description diff --git a/src/ngResource/resource.js b/src/ngResource/resource.js index db198401..d19a1d6a 100644 --- a/src/ngResource/resource.js +++ b/src/ngResource/resource.js @@ -318,7 +318,7 @@ angular.module('ngResource', ['ng']). } forEach(actions, function(action, name) { - var isPostOrPut = action.method == 'POST' || action.method == 'PUT'; + var hasBody = action.method == 'POST' || action.method == 'PUT' || action.method == 'PATCH'; Resource[name] = function(a1, a2, a3, a4) { var params = {}; var data; @@ -349,7 +349,7 @@ angular.module('ngResource', ['ng']). } case 1: if (isFunction(a1)) success = a1; - else if (isPostOrPut) data = a1; + else if (hasBody) data = a1; else params = a1; break; case 0: break; @@ -409,7 +409,7 @@ angular.module('ngResource', ['ng']). throw "Expected between 1-3 arguments [params, success, error], got " + arguments.length + " arguments."; } - var data = isPostOrPut ? this : undefined; + var data = hasBody ? this : undefined; Resource[name].call(this, params, data, success, error); }; }); |
