aboutsummaryrefslogtreecommitdiffstats
path: root/test/ngResource/resourceSpec.js
AgeCommit message (Collapse)Author
2014-02-21fix($http): do not add trailing questionBoris Serdyuk
Closes #6342
2014-02-04fix(ngResource): don't filter "$"-prefixed properties from ngResource ↵Thomas Belin
requests/responses ngResource no longer filters properties prefixed with a single "$" character from requests or responses, correcting a regression introduced in 1.2.6 (cb29632a) which caused shallowCopy and shallowClearAndCopy to ignore properties prefixed with a single "$". Closes #5666 Closes #6080 Closes #6033
2014-02-03fix(ngResource): don't append number to '$' in url param value when encoding URICaitlin Potter
Previously, if a URL parameter value included a $, it would replace the dollar sign with a literal '$1' for mysterious reasons. Using a function rather than a replacement string circumvents this behaviour and produces a more expected result. Closes #6003 Closes #6004
2014-01-02fix($resource): prevent URL template from collapsing into an empty stringGias Kay Lee
if url template would result in an empty string, we should make a request to '/' instead. Closes #5455 Closes #5493
2013-11-21fix($resource): Always return a resource instance when calling class methods ↵Tobias Bosch
on resources. Previously, calling `MyResource.save(myResourceInstance)`returned a promise, in contrast to the docs for `$resource`. However, calling `MyResource.save({name: 'Tobias"})`already correctly returned a resource instance. Fixes #4545. Closes #5061.
2013-11-11fix($resource): don't use $parse for @dotted.memberChirayu Krishnappa
params and paramDefaults support looking up the parameter value from the data object. The syntax for that is `@nested.property.name`. Currently, $resource uses $parse to do this. This is too liberal (you can use values like `@a=b` or `@a | filter` and have it work - which doesn't really make sense). It also puts up a dependency on $parse which is has restrictions to secure expressions used in templates. The value here, though a string, is specified in Javascript code and shouldn't have those restrictions.
2013-10-07fix(*): protect calls to hasOwnProperty in public APIPeter Bacon Darwin
Objects received from outside AngularJS may have had their `hasOwnProperty` method overridden with something else. In cases where we can do this without incurring a performance penalty we call directly on Object.prototype.hasOwnProperty to ensure that we use the correct method. Also, we have some internal hash objects, where the keys for the map are provided from outside AngularJS. In such cases we either prevent `hasOwnProperty` from being used as a key or provide some other way of preventing our objects from having their `hasOwnProperty` overridden. BREAKING CHANGE: Inputs with name equal to "hasOwnProperty" are not allowed inside form or ngForm directives. Before, inputs whose name was "hasOwnProperty" were quietly ignored and not added to the scope. Now a badname exception is thrown. Using "hasOwnProperty" for an input name would be very unusual and bad practice. Either do not include such an input in a `form` or `ngForm` directive or change the name of the input. Closes #3331
2013-10-04fix(ngResource): Remove request body from $deleteJen Bourey
Prevent the obj.$delete instance method from sending the resource as the request body. This commit uses the existing hasBody boolean to only set httpConfig.data for methods which should have a request body. Closes #4280
2013-10-02fix($resource): pass transformed value to both callbacks and promisesjankuca
Closes #3817
2013-08-23test: rename / remove duplicate unit testsVojta Jina
2013-08-15feat(minerr): log minerr doc url in developmentKen Sheedlo
Closes #3566
2013-08-09style(minerr): prefer component name as namespaceKen Sheedlo
Closes #3527
2013-07-31fix(resource): check whether response matches action.isArrayPete Bacon Darwin
When using $resource you must setup your actions carefully based on what the server returns. If the server responds to a request with an array then you must configure the action with `isArray:true` and vice versa. The built-in `get` action defaults to `isArray:false` and the `query` action defaults to `isArray:true`, which is must be changed if the server does not do this. Before the error message was an exception inside angular.copy, which didn't explain what the real problem was. Rather than changing the way that angular.copy works, this change ensures that a better error message is provided to the programmer if they do not set up their resource actions correctly. Closes #2255, #1044
2013-07-12feat($resource): support an unescaped URL portLeandro Ostera
The colon character is used to identify parameters in $resource. This meant that we had to escape the colon used in a port. It turns out that this is not necessary if we assume that parameter names cannot consist of only digits. If the parameter consists only of numbers, then it's a port. Closes #2778
2013-05-23feat($resource): expose promise instead of only $thenAlexander Shtuchkin
- Instance or collection have `$promise` property which is the initial promise. - Add per-action `interceptor`, which has access to entire $http response object. BREAKING CHANGE: resource instance does not have `$then` function anymore. Before: Resource.query().$then(callback); After: Resource.query().$promise.then(callback); BREAKING CHANGE: instance methods return the promise rather than the instance itself. Before: resource.$save().chaining = true; After: resource.$save(); resourve.chaining = true; BREAKING CHANGE: On success, promise is resolved with the resource instance rather than http response object. Use interceptor to access the http response object. Before: Resource.query().$then(function(response) {...}); After: var Resource = $resource('/url', {}, { get: { method: 'get', interceptor: { response: function(response) { // expose response return response; } } } });
2013-05-16fix($resource): null default param results in TypeErrorRyan Schumacher
Fixes issue when setting a default param as `null` error `TypeError: Cannot read property 'charAt' of null`
2013-05-14feat($resource): collapse empty suffix parameters correctlyGlenn Goodrich
Previously only repeated `/` delimiters were collapsed into a single `/`. Now, the sequence `/.` at the end of the template, i.e. only followed by a sequence of word characters, is collapsed into a single `.`. This makes it easier to support suffixes on resource URLs. For example, given a resource template of `/some/path/:id.:format`, if the `:id` is `""` but format `"json"` then the URL is now `/some/path.json`, rather than `/some/path/.json`. BREAKING CHANGE: A `/` followed by a `.`, in the last segment of the URL template is now collapsed into a single `.` delimiter. For example: `users/.json` will become `users.json`. If your server relied upon this sequence then it will no longer work. In this case you can now escape the `/.` sequence with `/\.`
2013-03-27feat(http): support request/response promise chainingSylvester Keil
myApp.factory('myAroundInterceptor', function($rootScope, $timeout) { return function(configPromise, responsePromise) { return { request: configPromise.then(function(config) { return config }); response: responsePromise.then(function(response) { return 'ha!'; } }); } myApp.config(function($httpProvider){ $httpProvider.aroundInterceptors.push('myAroundInterceptor'); });
2013-02-27feat($resource): ability to override url in resource actionszeflasher
Resources now can defined per action url override. The url is treated as a template rather than a literal string, so fancy interpolations are possible. See attached tests for example usage.
2013-02-26fix($http): don't encode URL query substring "null" to "+"Andrew McLeod
Fixes issue in encodeUriQuery used by $http and $resource that treats null as a string and replaces the characters "null" with "+".
2013-02-14fix($http): do not encode special characters `@$:,` in paramsVojta Jina
encodeURIComponent is too aggressive and doesn't follow http://www.ietf.org/rfc/rfc3986.txt with regards to the character set (pchar) allowed in path segments so we need this test to make sure that we don't over-encode the params and break stuff like buzz api which uses @self. This is has already been fixed in `$resource`. This commit fixes it in a same way for `$http` as well. BREAKING CHANGE: $http does follow RFC3986 and does not encode special characters like `$@,:` in params. If your application needs to encode these characters, encode them manually, before sending the request.
2013-02-14fix($resource): params should expand array values properlyMark Nadig
Today, calling e.g. var R = $resource('/Path/:a'); R.get({a: 'foo', bar: ['baz1', 'baz2']}); results in a query string like "/Path/doh?bar=baz1,baz2" which is undesirable. This commit enhances resource to use $http to encode any non-url parameters resulting in a query string like "/Path/doh?bar=baz1&bar=baz2". BREAKING CHANGE: if the server relied on the buggy behavior then either the backend should be fixed or a simple serialization of the array should be done on the client before calling the resource service.
2013-02-14fix(resource): Update RegExp to allow urlParams with out leading slashFredrik Bonander
Will allow reoucese to be loaded from a relative path Example: var R = $resource(':path'); R.get({ path : 'data.json' }); Example usage: Load resources in applications not using webserver, ie local webapp in on a tablet.
2013-02-11feat($resource): expose promise based api via $then and $resolvedIgor Minar
Expose $then and $resolved properties on resource action return values which allow checking if a promise has been resolved already as well as registering listeners at any time of the resource object life-cycle. This commit replaces unreleased commit f3bff27460afb3be208a05959d5b84233d34b7eb which exposed unintuitive $q api instead and didn't expose important stuff like http headers.
2013-01-23feat(resource): add $q/$resorved property to ResourcePartap Davis
2013-01-22revert: fix($resource): Route constructor, updated RegExpIgor Minar
This reverts commit 06ed8ef0127bf80610eba17b5021d1f483d0b0bf. The reverted commit causes regressions. See comments in the PR: https://github.com/angular/angular.js/pull/1402#issuecomment-12575399
2013-01-18fix($resource): Route constructor, updated RegExpFredrik Bonander
Update RegExp to allow urlParams with out leading slash (/). - Will allow reoucese to be loaded from a relative path Example: var R = $resource(':path'); R.get({ path : 'data.json' }); Example usage: Load resources in applications not using webserver, ie local webapp in on a tablet.
2013-01-18fix(ngResource): correct leading slash removal.pavelgj
Fixed an issues with ngResource param substitution where it was incorrectly removing leading slash when param was followed by a non-slash character. Ex: '/:foo/:bar.baz/:aux' params = { foo: 'aaa', bar: undefined, aux: undefined } The above params were incorrectly producing '/aaa.baz' but now it results in '/aaa/.baz'.
2013-01-17feat(ngResource): support all $http.config actionsMisko Hevery
This allows the transformation of the $http request in both directions, headers, caching, and timeout.
2012-11-30fix($resource): HTTP method should be case-insensitiveSudhir Jonathan
Perform call `angular.uppercase` on all given action methods. Closes #1403
2012-11-28feat($resource): allow dynamic default parametersPascal Corpet
Default resource params can now be calculated at runtime if defined via a function.
2012-11-24fix($resource): prevent default params to be shared between actionsAdrian Gheorghe
Having a $resource defined as: var R = $resource('/Path', {}, { get: {method: 'GET', params: {objId: '1'}}, perform: {method: 'GET'} }); was causing both actions to call the same URI (if called in this order): R.get({}); // => /Path?objId=1 R.perform({}); // => /Path?objId=1
2012-09-06fix($resource): allow falsy values in URL parametersBenjamín Eidelman
Close #1212 when a param value was 0 (or false) it was ignored and removed from url. after this fix that only happens if the value is undefined or null.
2012-09-06fix($resource): ignore undefined parameterspetrovalex
- $resource should handle multiple params with same name - ignore slashes of undefined parameters - fix default parameters issue, mentioned in #875 Closes #875 Closes #782
2012-09-06feat($resource): support custom headers per actionMax Martinsson
Closes #736
2012-04-20feat($resource): support HTTP PATCH methodsimpulton
Properly serialize data into request body instead of url. Closes #887
2012-03-28chore(Rakefile): get ready for modulesMisko Hevery