Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .watchmanconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"ignore_dirs": ["tmp"]
}
7 changes: 2 additions & 5 deletions addon/adapters/sails-base.js
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,7 @@ export default DS.RESTAdapter.extend(Ember.Evented, WithLoggerMixin, {
this.debug(' → request:', options.data);
this.debug(' ← response:', response);
if (this.isErrorObject(response)) {
if (response.errors) {
return RSVP.reject(new DS.InvalidError(this.formatError(response)));
}
return RSVP.reject(response);
return RSVP.reject(new DS.InvalidError(this.formatError(response)));
}
return response;
}))
Expand Down Expand Up @@ -149,7 +146,7 @@ export default DS.RESTAdapter.extend(Ember.Evented, WithLoggerMixin, {
data = jqXHR.responseText;
}

if (data.errors) {
if (this.isErrorObject(data)) {
this.error('error returned from Sails', data);
return new DS.InvalidError(this.formatError(data));
}
Expand Down
40 changes: 22 additions & 18 deletions addon/adapters/sails-rest.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,26 +20,30 @@ export default SailsBaseAdapter.extend({
* @property csrfTokenUrl
* @type String
*/
csrfTokenUrl: computed('host', 'namespace', 'csrfTokenPath', function (key, value) {
var csrfTokenUrl, csrfTokenPath;
if (arguments.length > 1) {
this._csrfTokenUrl = csrfTokenUrl = value;
}
else if (this._csrfTokenUrl !== undefined) {
csrfTokenUrl = this._csrfTokenUrl;
}
else {
csrfTokenPath = this.get('csrfTokenPath');
csrfTokenUrl = Ember.A([
this.get('host'),
csrfTokenPath.charAt(0) === '/' ? null : this.get('namespace'),
csrfTokenPath.replace(/^\//, '')
]).filter(Boolean).join('/');
if (!/^(https?:)?\/\//.test(csrfTokenUrl)) {
csrfTokenUrl = '/' + csrfTokenUrl;
csrfTokenUrl: computed('host', 'namespace', 'csrfTokenPath',{
get: function(key) {
var csrfTokenUrl, csrfTokenPath;
if (this._csrfTokenUrl !== undefined) {
csrfTokenUrl = this._csrfTokenUrl;
}
else {
csrfTokenPath = this.get('csrfTokenPath');
csrfTokenUrl = Ember.A([
this.get('host'),
csrfTokenPath.charAt(0) === '/' ? null : this.get('namespace'),
csrfTokenPath.replace(/^\//, '')
]).filter(Boolean).join('/');
if (!/^(https?:)?\/\//.test(csrfTokenUrl)) {
csrfTokenUrl = '/' + csrfTokenUrl;
}
}
return csrfTokenUrl;
},
set: function(key, value) {
this._csrfTokenUrl = value;
return this._csrfTokenUrl;
}
return csrfTokenUrl;

}),


Expand Down
2 changes: 1 addition & 1 deletion addon/adapters/sails-socket.js
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ export default SailsBaseAdapter.extend({
payload[k] = Object.keys(data[k]);
this._listenToSocket(k);
}
self.debug(fmt('asking the API to subscribe to some records of type %@', Ember.keys(data).join(', ')));
self.debug(fmt('asking the API to subscribe to some records of type %@', Object.keys(data).join(', ')));
// ask the API to subscribe to those records
this.fetchCSRFToken().then(function () {
self.checkCSRF(payload);
Expand Down
15 changes: 9 additions & 6 deletions addon/serializers/sails.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ function blueprintsWrapMethod(method) {
* @extends DS.RESTSerializer
*/
var SailsSerializer = DS.RESTSerializer.extend(WithLogger, {

isNewSerializerAPI: true,

/**
* The config of the addon will be set here by the initializer
* @since 0.0.17
Expand All @@ -44,7 +47,7 @@ var SailsSerializer = DS.RESTSerializer.extend(WithLogger, {
* @method extractArray
* @inheritDoc
*/
extractArray: blueprintsWrapMethod(function (store, primaryType, payload) {
normalizeArrayResponse: blueprintsWrapMethod(function (store, primaryType, payload) {
var newPayload = {};
newPayload[pluralize(primaryType.modelName)] = payload;
return this._super(store, primaryType, newPayload);
Expand All @@ -55,7 +58,7 @@ var SailsSerializer = DS.RESTSerializer.extend(WithLogger, {
* @method extractSingle
* @inheritDoc
*/
extractSingle: blueprintsWrapMethod(function (store, primaryType, payload, recordId) {
normalizeSingleResponse: blueprintsWrapMethod(function (store, primaryType, payload, recordId) {
var newPayload;
if (payload === null) {
return this._super.apply(this, arguments);
Expand All @@ -70,7 +73,7 @@ var SailsSerializer = DS.RESTSerializer.extend(WithLogger, {
* @method extractDeleteRecord
* @inheritDoc
*/
extractDeleteRecord: blueprintsWrapMethod(function (store, type, payload, id, requestType) {
normalizeDeleteRecordResponse: blueprintsWrapMethod(function (store, type, payload, id, requestType) {
return this._super(store, type, null, id, requestType);
}),

Expand All @@ -81,7 +84,7 @@ var SailsSerializer = DS.RESTSerializer.extend(WithLogger, {
*/
serializeIntoHash: blueprintsWrapMethod(function (data, type, record, options) {
var json;
if (Ember.keys(data).length > 0) {
if (Object.keys(data).length > 0) {
this.error(
fmt('trying to serialize multiple records in one hash for type %@', type.modelName),
data
Expand All @@ -108,7 +111,7 @@ var SailsSerializer = DS.RESTSerializer.extend(WithLogger, {
* @method extract
* @inheritDoc
*/
extract: function (store, type/*, payload, id, requestType*/) {
normalizeResponse: function (store, type/*, payload, id, requestType*/) {
var adapter, modelName, isUsingSocketAdapter;
// this is the only place we have access to the store, so that we can get the adapter and check
// if it is an instance of sails socket adapter, and so register for events if necessary on that
Expand All @@ -118,7 +121,7 @@ var SailsSerializer = DS.RESTSerializer.extend(WithLogger, {
}
modelName = type.modelName;
if (this._modelsUsingSailsSocketAdapter[modelName] === undefined) {
adapter = store.adapterFor(type);
adapter = store.adapterFor(modelName);
this._modelsUsingSailsSocketAdapter[modelName] = isUsingSocketAdapter = adapter instanceof SailsSocketAdapter;
if (isUsingSocketAdapter) {
adapter._listenToSocket(modelName);
Expand Down
16 changes: 8 additions & 8 deletions bower.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"name": "ember-data-sails",
"dependencies": {
"ember": "1.10.0",
"ember": "1.13.7",
"ember-cli-shims": "ember-cli/ember-cli-shims#0.0.3",
"ember-cli-test-loader": "ember-cli-test-loader#0.1.3",
"ember-data": "1.0.0-beta.16",
"ember-load-initializers": "ember-cli/ember-load-initializers#0.0.2",
"ember-qunit": "0.2.8",
"ember-data": "1.13.8",
"ember-load-initializers": "ember-cli/ember-load-initializers#0.1.5",
"ember-qunit": "0.4.9",
"ember-qunit-notifications": "0.0.7",
"ember-resolver": "~0.1.14",
"jquery": "^1.11.1",
"loader.js": "ember-cli/loader.js#3.2.0",
"qunit": "~1.17.1"
"ember-resolver": "~0.1.18",
"jquery": "^1.11.3",
"loader.js": "ember-cli/loader.js#3.2.1",
"qunit": "~1.18.0"
}
}
35 changes: 35 additions & 0 deletions config/ember-try.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
module.exports = {
scenarios: [
{
name: 'default',
dependencies: { }
},
{
name: 'ember-release',
dependencies: {
'ember': 'components/ember#release'
},
resolutions: {
'ember': 'release'
}
},
{
name: 'ember-beta',
dependencies: {
'ember': 'components/ember#beta'
},
resolutions: {
'ember': 'beta'
}
},
{
name: 'ember-canary',
dependencies: {
'ember': 'components/ember#canary'
},
resolutions: {
'ember': 'canary'
}
}
]
};
17 changes: 17 additions & 0 deletions ember-cli-build.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/* global require, module */
var EmberApp = require('ember-cli/lib/broccoli/ember-addon');

module.exports = function(defaults) {
var app = new EmberApp(defaults, {
// Add options here
});

/*
This build file specifes the options for the dummy test app of this
addon, located in `/tests/dummy`
This build file does *not* influence how the addon or the app using it
behave. You most likely want to be modifying `./index.js` or app's build file
*/

return app.toTree();
};
26 changes: 14 additions & 12 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,21 @@
"author": "Huafu Gandon <huafu.gandon@gmail.com>",
"license": "MIT",
"devDependencies": {
"broccoli-asset-rev": "^2.0.2",
"ember-cli": "0.2.1",
"ember-cli-app-version": "0.3.3",
"ember-cli-babel": "^4.0.0",
"broccoli-asset-rev": "^2.1.2",
"ember-cli": "1.13.8",
"ember-cli-app-version": "0.5.0",
"ember-cli-content-security-policy": "0.4.0",
"ember-cli-dependency-checker": "0.0.8",
"ember-cli-htmlbars": "0.7.4",
"ember-cli-ic-ajax": "0.1.1",
"ember-cli-inject-live-reload": "^1.3.0",
"ember-cli-qunit": "0.3.9",
"ember-cli-uglify": "1.0.1",
"ember-data": "1.0.0-beta.16",
"ember-export-application-global": "^1.0.2"
"ember-cli-dependency-checker": "^1.0.1",
"ember-cli-htmlbars": "0.7.9",
"ember-cli-ic-ajax": "0.2.1",
"ember-cli-inject-live-reload": "^1.3.1",
"ember-cli-qunit": "^1.0.0",
"ember-cli-uglify": "^1.2.0",
"ember-data": "1.13.8",
"ember-disable-proxy-controllers": "^1.0.0",
"ember-export-application-global": "^1.0.3",
"ember-disable-prototype-extensions": "^1.0.0",
"ember-try": "0.0.6"
},
"keywords": [
"ember-addon",
Expand Down