Skip to content

Commit

Permalink
Merge pull request #3512 from emberjs/revert-3506-no-this-store
Browse files Browse the repository at this point in the history
Revert "[BUGFIX release] There is no `store` property on a serializer"
  • Loading branch information
bmac committed Jul 7, 2015
2 parents 18a3c3a + 56e5998 commit 37fb6f0
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 20 deletions.
13 changes: 5 additions & 8 deletions packages/ember-data/lib/serializers/embedded-records-mixin.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ var camelize = Ember.String.camelize;
*/
var EmbeddedRecordsMixin = Ember.Mixin.create({

_store: Ember.inject.service('store'),
/**
Normalize the record and recursively normalize/extract all the embedded records
while pushing them into the store as they are encountered
Expand Down Expand Up @@ -123,9 +122,8 @@ var EmbeddedRecordsMixin = Ember.Mixin.create({
@return {Object} the normalized hash
**/
normalize: function(typeClass, hash, prop) {
var normalizedHash = this._super(typeClass, hash);
var store = this.get('_store');
return this._extractEmbeddedRecords(this, store, typeClass, normalizedHash);
var normalizedHash = this._super(typeClass, hash, prop);
return this._extractEmbeddedRecords(this, this.store, typeClass, normalizedHash);
},

keyForRelationship: function(key, typeClass, method) {
Expand Down Expand Up @@ -347,14 +345,13 @@ var EmbeddedRecordsMixin = Ember.Mixin.create({
@param {Object} json
*/
removeEmbeddedForeignKey: function (snapshot, embeddedSnapshot, relationship, json) {
var store = this.get('_store');
if (relationship.kind === 'hasMany') {
return;
} else if (relationship.kind === 'belongsTo') {
var parentRecord = snapshot.type.inverseFor(relationship.key, store);
var parentRecord = snapshot.type.inverseFor(relationship.key, this.store);
if (parentRecord) {
var name = parentRecord.name;
var embeddedSerializer = store.serializerFor(embeddedSnapshot.modelName);
var embeddedSerializer = this.store.serializerFor(embeddedSnapshot.modelName);
var parentKey = embeddedSerializer.keyForRelationship(name, parentRecord.kind, 'deserialize');
if (parentKey) {
delete json[parentKey];
Expand Down Expand Up @@ -480,7 +477,7 @@ var EmbeddedRecordsMixin = Ember.Mixin.create({
let modelClass = store.modelFor(modelName);
let serializer = store.serializerFor(modelName);

return serializer.normalize(modelClass, relationshipHash);
return serializer.normalize(modelClass, relationshipHash, null);
}
});

Expand Down
18 changes: 9 additions & 9 deletions packages/ember-data/lib/serializers/json-api-serializer.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,16 @@ export default JSONSerializer.extend({
@return {Object}
@private
*/
_normalizeDocumentHelper: function(store, documentHash) {
_normalizeDocumentHelper: function(documentHash) {

if (Ember.typeOf(documentHash.data) === 'object') {
documentHash.data = this._normalizeResourceHelper(store, documentHash.data);
documentHash.data = this._normalizeResourceHelper(documentHash.data);
} else if (Ember.typeOf(documentHash.data) === 'array') {
documentHash.data = documentHash.data.map((resourceHash) => this._normalizeResourceHelper(store, resourceHash));
documentHash.data = documentHash.data.map(this._normalizeResourceHelper, this);
}

if (Ember.typeOf(documentHash.included) === 'array') {
documentHash.included = documentHash.included.map((resourceHash) => this._normalizeResourceHelper(store, resourceHash));
documentHash.included = documentHash.included.map(this._normalizeResourceHelper, this);
}

return documentHash;
Expand All @@ -54,10 +54,10 @@ export default JSONSerializer.extend({
@return {Object}
@private
*/
_normalizeResourceHelper: function(store, resourceHash) {
_normalizeResourceHelper: function(resourceHash) {
let modelName = this.modelNameFromPayloadKey(resourceHash.type);
let modelClass = store.modelFor(modelName);
let serializer = store.serializerFor(modelName);
let modelClass = this.store.modelFor(modelName);
let serializer = this.store.serializerFor(modelName);
let { data } = serializer.normalize(modelClass, resourceHash);
return data;
},
Expand All @@ -68,7 +68,7 @@ export default JSONSerializer.extend({
@param {Object} payload
*/
pushPayload: function(store, payload) {
let normalizedPayload = this._normalizeDocumentHelper(store, payload);
let normalizedPayload = this._normalizeDocumentHelper(payload);
store.push(normalizedPayload);
},

Expand All @@ -84,7 +84,7 @@ export default JSONSerializer.extend({
@private
*/
_normalizeResponse: function(store, primaryModelClass, payload, id, requestType, isSingle) {
let normalizedPayload = this._normalizeDocumentHelper(store, payload);
let normalizedPayload = this._normalizeDocumentHelper(payload);
return normalizedPayload;
},

Expand Down
3 changes: 1 addition & 2 deletions packages/ember-data/lib/serializers/json-serializer.js
Original file line number Diff line number Diff line change
Expand Up @@ -803,8 +803,7 @@ var JSONSerializer = Serializer.extend({
@return {boolean} true if the hasMany relationship should be serialized
*/
_shouldSerializeHasMany: function (snapshot, key, relationship) {
var store = snapshot.record.store;
var relationshipType = snapshot.type.determineRelationshipType(relationship, store);
var relationshipType = snapshot.type.determineRelationshipType(relationship, this.store);
if (this._mustSerialize(key)) {
return true;
}
Expand Down
2 changes: 1 addition & 1 deletion tests/ember-configuration.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@
registry.register('adapter:-json-api', DS.JSONAPIAdapter);
registry.register('serializer:-json-api', DS.JSONAPISerializer);

registry.register('service:store', DS.Store);
registry.injection('serializer', 'store', 'store:main');

env.serializer = container.lookup('serializer:-default');
env.restSerializer = container.lookup('serializer:-rest');
Expand Down

0 comments on commit 37fb6f0

Please sign in to comment.