From e2e8d8bc10cfbe09bc1b65e5c25d9522a78e05fb Mon Sep 17 00:00:00 2001 From: Kerry McCullough Date: Thu, 13 Jul 2017 11:41:36 -0600 Subject: [PATCH] feat($resource): add resource to response for error interceptors --- src/ngResource/resource.js | 6 +++++- test/ngResource/resourceSpec.js | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ngResource/resource.js b/src/ngResource/resource.js index 054fb2523ac6..1314349b49ad 100644 --- a/src/ngResource/resource.js +++ b/src/ngResource/resource.js @@ -192,7 +192,8 @@ function shallowClearAndCopy(src, dst) { * [requestType](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType). * - **`interceptor`** - `{Object=}` - The interceptor object has two optional methods - * `response` and `responseError`. Both `response` and `responseError` interceptors get called - * with `http response` object. See {@link ng.$http $http interceptors}. + * with `http response` object. See {@link ng.$http $http interceptors}. In addition, The + * resource object is accessible by the `resource` property of the `http response` object. * - **`hasBody`** - `{boolean}` - allows to specify if a request body should be included or not. * If not specified only POST, PUT and PATCH requests will have a body. * @@ -776,6 +777,9 @@ angular.module('ngResource', ['ng']). response.resource = value; return response; + }, function(response) { + response.resource = value; + return $q.reject(response); }); promise = promise['finally'](function() { diff --git a/test/ngResource/resourceSpec.js b/test/ngResource/resourceSpec.js index bc8bbd079642..869ffa61aabc 100644 --- a/test/ngResource/resourceSpec.js +++ b/test/ngResource/resourceSpec.js @@ -1205,6 +1205,7 @@ describe('basic usage', function() { expect(callback).toHaveBeenCalledOnce(); var response = callback.calls.mostRecent().args[0]; + expect(response.resource).toBe(ccs); expect(response.status).toBe(404); expect(response.config).toBeDefined(); });