Skip to content

Commit 795d044

Browse files
committedFeb 24, 2015
Stable Version 2.2.0.
1 parent 6c77f71 commit 795d044

9 files changed

+63
-5
lines changed
 

‎CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
##### 2.2.0 - 24 February 2015
2+
3+
###### Backwards compatible API changes
4+
- Added `suffix` option
5+
16
##### 2.1.0 - 04 February 2015
27

38
Now requiring >= js-data 1.1.0 in order to use removeCircular to safely safe cyclic objects

‎Gruntfile.js

+2
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ module.exports = function (grunt) {
3434
uglify: {
3535
main: {
3636
options: {
37+
sourceMap: true,
38+
sourceMapName: 'dist/js-data-angular.min.map',
3739
banner: '/**\n' +
3840
'* @author Jason Dobry <jason.dobry@gmail.com>\n' +
3941
'* @file js-data-angular.min.js\n' +

‎README.md

+4
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@ Js-data-angular is Angular-data 2.0, with [js-data](http://www.js-data.io) as th
1313
- [Resources/Models](http://www.js-data.io/docs/resources)
1414
- [Working with the Data Store](http://www.js-data.io/docs/working-with-the-data-store)
1515
- [Adapters](http://www.js-data.io/docs/working-with-adapters)
16+
- [Query Syntax](http://www.js-data.io/docs/query-syntax)
1617
- [Model Lifecycle](http://www.js-data.io/docs/model-lifecycle)
1718
- [Custom Instance Behavior](http://www.js-data.io/docs/custom-instance-behavior)
1819
- [Computed Properties](http://www.js-data.io/docs/computed-properties)
1920
- [Relations](http://www.js-data.io/docs/relations)
2021
- [Schemata & Validation](http://www.js-data.io/docs/schemata--validation)
22+
- [JSData on the Server](http://www.js-data.io/docs/jsdata-on-the-server)
2123
- [FAQ](http://www.js-data.io/docs/faq)
2224

2325
## Js-data-angular API Documentation
@@ -30,6 +32,8 @@ Js-data-angular is Angular-data 2.0, with [js-data](http://www.js-data.io) as th
3032
- [DSFirebaseAdapter](http://www.js-data.io/docs/dsfirebaseadapter)
3133
- [DSRedisAdapter](http://www.js-data.io/docs/dsredisadapter)
3234
- [DSRethinkDBAdapter](http://www.js-data.io/docs/dsrethinkdbadapter)
35+
- [DSMongoDBAdapter](http://www.js-data.io/docs/dsmongodbadapter)
36+
- [DSSqlAdapter](http://www.js-data.io/docs/dssqladapter)
3337

3438
## Project Status
3539

‎dist/js-data-angular.js

+12-1
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,7 @@
357357
dsHttpAdapterPrototype.find = function (resourceConfig, id, options) {
358358
var _this = this;
359359
options = options || {};
360+
options.suffix = options.suffix || resourceConfig.suffix;
360361
return _this.GET(
361362
_this.getPath('find', resourceConfig, id, options),
362363
options
@@ -369,6 +370,7 @@
369370
var _this = this;
370371
options = options || {};
371372
options = DSUtils.copy(options);
373+
options.suffix = options.suffix || resourceConfig.suffix;
372374
options.params = options.params || {};
373375
if (params) {
374376
params = _this.defaults.queryTransform(resourceConfig, params);
@@ -385,6 +387,7 @@
385387
dsHttpAdapterPrototype.create = function (resourceConfig, attrs, options) {
386388
var _this = this;
387389
options = options || {};
390+
options.suffix = options.suffix || resourceConfig.suffix;
388391
return _this.POST(
389392
_this.getPath('create', resourceConfig, attrs, options),
390393
(options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs),
@@ -397,6 +400,7 @@
397400
dsHttpAdapterPrototype.update = function (resourceConfig, id, attrs, options) {
398401
var _this = this;
399402
options = options || {};
403+
options.suffix = options.suffix || resourceConfig.suffix;
400404
return _this.PUT(
401405
_this.getPath('update', resourceConfig, id, options),
402406
(options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs),
@@ -410,6 +414,7 @@
410414
var _this = this;
411415
options = options || {};
412416
options = DSUtils.copy(options);
417+
options.suffix = options.suffix || resourceConfig.suffix;
413418
options.params = options.params || {};
414419
if (params) {
415420
params = _this.defaults.queryTransform(resourceConfig, params);
@@ -427,6 +432,7 @@
427432
dsHttpAdapterPrototype.destroy = function (resourceConfig, id, options) {
428433
var _this = this;
429434
options = options || {};
435+
options.suffix = options.suffix || resourceConfig.suffix;
430436
return _this.DEL(
431437
_this.getPath('destroy', resourceConfig, id, options),
432438
options
@@ -439,6 +445,7 @@
439445
var _this = this;
440446
options = options || {};
441447
options = DSUtils.copy(options);
448+
options.suffix = options.suffix || resourceConfig.suffix;
442449
options.params = options.params || {};
443450
if (params) {
444451
params = _this.defaults.queryTransform(resourceConfig, params);
@@ -460,13 +467,17 @@
460467
var _this = this;
461468
var start = new Date();
462469
config = deepMixIn(config, _this.defaults.httpConfig);
463-
if (_this.defaults.forceTrailingSlash && config.url[config.url.length] !== '/') {
470+
if (_this.defaults.forceTrailingSlash && config.url[config.url.length-1] !== '/') {
464471
config.url += '/';
465472
}
466473
config.method = config.method.toUpperCase();
467474
if (typeof config.data === 'object') {
468475
config.data = DSUtils.removeCircular(config.data);
469476
}
477+
var suffix = config.suffix || _this.defaults.suffix;
478+
if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix) {
479+
config.url += suffix;
480+
}
470481

471482
function logResponse(data) {
472483
var str = start.toUTCString() + ' - ' + data.config.method.toUpperCase() + ' ' + data.config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms';

‎dist/js-data-angular.min.js

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎dist/js-data-angular.min.map

+1
Original file line numberDiff line numberDiff line change

‎package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@
2121
"main": "src/index.js",
2222
"devDependencies": {
2323
"grunt": "0.4.5",
24-
"grunt-browserify": "3.3.0",
24+
"grunt-browserify": "3.4.0",
2525
"grunt-contrib-clean": "0.6.0",
2626
"grunt-contrib-jshint": "0.11.0",
27-
"grunt-contrib-uglify": "0.7.0",
27+
"grunt-contrib-uglify": "0.8.0",
2828
"grunt-contrib-watch": "0.6.1",
2929
"grunt-karma": "0.10.1",
3030
"grunt-karma-coveralls": "2.5.3",
@@ -38,7 +38,7 @@
3838
"karma-mocha": "0.1.10",
3939
"karma-sinon": "1.0.4",
4040
"karma-spec-reporter": "0.0.16",
41-
"time-grunt": "1.0.0",
41+
"time-grunt": "1.1.0",
4242
"jit-grunt": "0.9.1"
4343
},
4444
"scripts": {

‎src/index.js

+11
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,7 @@
347347
dsHttpAdapterPrototype.find = function (resourceConfig, id, options) {
348348
var _this = this;
349349
options = options || {};
350+
options.suffix = options.suffix || resourceConfig.suffix;
350351
return _this.GET(
351352
_this.getPath('find', resourceConfig, id, options),
352353
options
@@ -359,6 +360,7 @@
359360
var _this = this;
360361
options = options || {};
361362
options = DSUtils.copy(options);
363+
options.suffix = options.suffix || resourceConfig.suffix;
362364
options.params = options.params || {};
363365
if (params) {
364366
params = _this.defaults.queryTransform(resourceConfig, params);
@@ -375,6 +377,7 @@
375377
dsHttpAdapterPrototype.create = function (resourceConfig, attrs, options) {
376378
var _this = this;
377379
options = options || {};
380+
options.suffix = options.suffix || resourceConfig.suffix;
378381
return _this.POST(
379382
_this.getPath('create', resourceConfig, attrs, options),
380383
(options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs),
@@ -387,6 +390,7 @@
387390
dsHttpAdapterPrototype.update = function (resourceConfig, id, attrs, options) {
388391
var _this = this;
389392
options = options || {};
393+
options.suffix = options.suffix || resourceConfig.suffix;
390394
return _this.PUT(
391395
_this.getPath('update', resourceConfig, id, options),
392396
(options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs),
@@ -400,6 +404,7 @@
400404
var _this = this;
401405
options = options || {};
402406
options = DSUtils.copy(options);
407+
options.suffix = options.suffix || resourceConfig.suffix;
403408
options.params = options.params || {};
404409
if (params) {
405410
params = _this.defaults.queryTransform(resourceConfig, params);
@@ -417,6 +422,7 @@
417422
dsHttpAdapterPrototype.destroy = function (resourceConfig, id, options) {
418423
var _this = this;
419424
options = options || {};
425+
options.suffix = options.suffix || resourceConfig.suffix;
420426
return _this.DEL(
421427
_this.getPath('destroy', resourceConfig, id, options),
422428
options
@@ -429,6 +435,7 @@
429435
var _this = this;
430436
options = options || {};
431437
options = DSUtils.copy(options);
438+
options.suffix = options.suffix || resourceConfig.suffix;
432439
options.params = options.params || {};
433440
if (params) {
434441
params = _this.defaults.queryTransform(resourceConfig, params);
@@ -457,6 +464,10 @@
457464
if (typeof config.data === 'object') {
458465
config.data = DSUtils.removeCircular(config.data);
459466
}
467+
var suffix = config.suffix || _this.defaults.suffix;
468+
if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix) {
469+
config.url += suffix;
470+
}
460471

461472
function logResponse(data) {
462473
var str = start.toUTCString() + ' - ' + data.config.method.toUpperCase() + ' ' + data.config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms';

‎test/adapters/http/find.test.js

+22
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,26 @@ describe('DSHttpAdapter.find', function () {
4949
delete DSHttpAdapter.defaults.httpConfig.params;
5050
delete DSHttpAdapter.defaults.httpConfig.headers;
5151
});
52+
53+
it('should use suffixes', function () {
54+
var Thing = DS.defineResource({
55+
name: 'thing',
56+
endpoint: 'things',
57+
suffix: '.xml'
58+
});
59+
60+
DSHttpAdapter.defaults.suffix = '.json';
61+
62+
$httpBackend.expectGET('http://test.angular-cache.com/things/1.xml').respond(200, { id: 1 });
63+
64+
DSHttpAdapter.find(Thing, 1);
65+
66+
$httpBackend.expectGET('http://test.angular-cache.com/posts/1.json').respond(200, { id: 1 });
67+
68+
DSHttpAdapter.find(Post, 1);
69+
70+
$httpBackend.flush();
71+
72+
DSHttpAdapter.defaults.suffix = '';
73+
});
5274
});

0 commit comments

Comments
 (0)
Please sign in to comment.