1
1
import Ember from 'ember' ;
2
2
3
+ // This is for reference in our post-save promise
4
+ // We need to unload these records after save, otherwise
5
+ // we will be left with 2 of the same object - one persisted
6
+ // and one not.
7
+ // This is only required for hasMany's
8
+ let savedRecords = [ ] ;
9
+
3
10
const iterateRelations = function ( record , relations , callback ) {
4
11
Object . keys ( relations ) . forEach ( ( relationName ) => {
5
12
let subRelations = relations [ relationName ] ;
@@ -71,6 +78,7 @@ const hasManyData = function(relatedRecords, subRelations) {
71
78
let payload = jsonapiPayload ( relatedRecord ) ;
72
79
processRelationships ( subRelations , payload , relatedRecord ) ;
73
80
payloads . push ( payload ) ;
81
+ savedRecords . push ( relatedRecord ) ;
74
82
} ) ;
75
83
return { data : payloads } ;
76
84
} ;
@@ -131,6 +139,7 @@ const relationshipsDirective = function(value) {
131
139
132
140
export default Ember . Mixin . create ( {
133
141
serialize ( snapshot /*, options */ ) {
142
+ savedRecords = [ ] ;
134
143
let json = this . _super ( ...arguments ) ;
135
144
delete ( json . data . relationships ) ;
136
145
delete ( json . data . attributes ) ;
@@ -152,6 +161,7 @@ export default Ember.Mixin.create({
152
161
153
162
let relationships = relationshipsDirective ( adapterOptions . relationships ) ;
154
163
processRelationships ( relationships , json . data , snapshot . record ) ;
164
+ snapshot . record . set ( '__recordsJustSaved' , savedRecords ) ;
155
165
console . log ( 'serialized' , json ) ;
156
166
return json ;
157
167
}
0 commit comments