@@ -5,7 +5,7 @@ import Ember from 'ember';
5
5
// we will be left with 2 of the same object - one persisted
6
6
// and one not.
7
7
// This is only required for hasMany's
8
- let savedRecords = [ ] ;
8
+ let savedRecords = { } ;
9
9
10
10
const iterateRelations = function ( record , relations , callback ) {
11
11
Object . keys ( relations ) . forEach ( ( relationName ) => {
@@ -72,13 +72,14 @@ const jsonapiPayload = function(record) {
72
72
return payload ;
73
73
} ;
74
74
75
- const hasManyData = function ( relatedRecords , subRelations ) {
75
+ const hasManyData = function ( relationName , relatedRecords , subRelations ) {
76
76
let payloads = [ ] ;
77
+ savedRecords [ relationName ] = [ ] ;
77
78
relatedRecords . forEach ( ( relatedRecord ) => {
78
79
let payload = jsonapiPayload ( relatedRecord ) ;
79
80
processRelationships ( subRelations , payload , relatedRecord ) ;
80
81
payloads . push ( payload ) ;
81
- savedRecords . push ( relatedRecord ) ;
82
+ savedRecords [ relationName ] . push ( relatedRecord ) ;
82
83
} ) ;
83
84
return { data : payloads } ;
84
85
} ;
@@ -89,11 +90,11 @@ const belongsToData = function(relatedRecord, subRelations) {
89
90
return { data : payload } ;
90
91
} ;
91
92
92
- const processRelationship = function ( kind , relationData , subRelations , callback ) {
93
+ const processRelationship = function ( name , kind , relationData , subRelations , callback ) {
93
94
let payload = null ;
94
95
95
96
if ( kind === 'hasMany' ) {
96
- payload = hasManyData ( relationData , subRelations ) ;
97
+ payload = hasManyData ( name , relationData , subRelations ) ;
97
98
} else {
98
99
payload = belongsToData ( relationData , subRelations ) ;
99
100
}
@@ -108,7 +109,7 @@ const processRelationships = function(relationshipHash, jsonData, record) {
108
109
jsonData . relationships = { } ;
109
110
110
111
iterateRelations ( record , relationshipHash , ( name , kind , related , subRelations ) => {
111
- processRelationship ( kind , related , subRelations , ( payload ) => {
112
+ processRelationship ( name , kind , related , subRelations , ( payload ) => {
112
113
jsonData . relationships [ name ] = payload ;
113
114
} ) ;
114
115
} ) ;
0 commit comments