@@ -224,7 +224,7 @@ class DSRethinkDBAdapter {
224224 relation : 'belongsTo'
225225 } ;
226226 } else if ( def . type === 'hasMany' ) {
227- merge [ localField ] = this . r . table ( models [ relationName ] . table || underscore ( models [ relationName ] . name ) ) . getAll ( id , { index : foreignKey } ) . coerceTo ( 'ARRAY' ) ;
227+ merge [ localField ] = this . r . table ( models [ relationName ] . table || underscore ( models [ relationName ] . name ) ) . getAll ( id , { index : foreignKey } ) . coerceTo ( 'ARRAY' ) ;
228228
229229 newModels [ localField ] = {
230230 modelName : relationName ,
@@ -236,7 +236,7 @@ class DSRethinkDBAdapter {
236236 if ( localKey ) {
237237 merge [ localField ] = merge [ localField ] . get ( localKey ) ;
238238 } else {
239- merge [ localField ] = merge [ localField ] . getAll ( id , { index : foreignKey } ) . coerceTo ( 'ARRAY' ) ;
239+ merge [ localField ] = merge [ localField ] . getAll ( id , { index : foreignKey } ) . coerceTo ( 'ARRAY' ) ;
240240 }
241241
242242 newModels [ localField ] = {
@@ -318,7 +318,7 @@ class DSRethinkDBAdapter {
318318 relation : 'belongsTo'
319319 } ;
320320 } else if ( def . type === 'hasMany' ) {
321- merge [ localField ] = this . r . table ( models [ relationName ] . table || underscore ( models [ relationName ] . name ) ) . getAll ( id , { index : foreignKey } ) . coerceTo ( 'ARRAY' ) ;
321+ merge [ localField ] = this . r . table ( models [ relationName ] . table || underscore ( models [ relationName ] . name ) ) . getAll ( id , { index : foreignKey } ) . coerceTo ( 'ARRAY' ) ;
322322
323323 newModels [ localField ] = {
324324 modelName : relationName ,
@@ -330,7 +330,7 @@ class DSRethinkDBAdapter {
330330 if ( localKey ) {
331331 merge [ localField ] = merge [ localField ] . get ( localKey ) ;
332332 } else {
333- merge [ localField ] = merge [ localField ] . getAll ( id , { index : foreignKey } ) . coerceTo ( 'ARRAY' ) ;
333+ merge [ localField ] = merge [ localField ] . getAll ( id , { index : foreignKey } ) . coerceTo ( 'ARRAY' ) ;
334334 }
335335
336336 newModels [ localField ] = {
@@ -354,17 +354,21 @@ class DSRethinkDBAdapter {
354354 attrs = removeCircular ( omit ( attrs , resourceConfig . relationFields || [ ] ) ) ;
355355 options = options || { } ;
356356 return this . waitForTable ( resourceConfig . table || underscore ( resourceConfig . name ) , options ) . then ( ( ) => {
357- return this . r . db ( options . db || this . defaults . db ) . table ( resourceConfig . table || underscore ( resourceConfig . name ) ) . insert ( attrs , { returnChanges : true } ) . run ( ) ;
357+ return this . r . db ( options . db || this . defaults . db ) . table ( resourceConfig . table || underscore ( resourceConfig . name ) ) . insert ( attrs , { returnChanges : true } ) . run ( ) ;
358358 } ) . then ( cursor => cursor . changes [ 0 ] . new_val ) ;
359359 }
360360
361361 update ( resourceConfig , id , attrs , options ) {
362362 attrs = removeCircular ( omit ( attrs , resourceConfig . relationFields || [ ] ) ) ;
363363 options = options || { } ;
364364 return this . waitForTable ( resourceConfig . table || underscore ( resourceConfig . name ) , options ) . then ( ( ) => {
365- return this . r . db ( options . db || this . defaults . db ) . table ( resourceConfig . table || underscore ( resourceConfig . name ) ) . get ( id ) . update ( attrs , { returnChanges : true } ) . run ( ) ;
365+ return this . r . db ( options . db || this . defaults . db ) . table ( resourceConfig . table || underscore ( resourceConfig . name ) ) . get ( id ) . update ( attrs , { returnChanges : true } ) . run ( ) ;
366366 } ) . then ( cursor => {
367- return cursor . changes [ 0 ] . new_val ;
367+ if ( cursor . changes && cursor . changes . length && cursor . changes [ 0 ] . new_val ) {
368+ return cursor . changes [ 0 ] . new_val ;
369+ } else {
370+ return this . selectTable ( resourceConfig , options ) . get ( id ) . run ( ) ;
371+ }
368372 } ) ;
369373 }
370374
@@ -373,11 +377,15 @@ class DSRethinkDBAdapter {
373377 options = options || { } ;
374378 params = params || { } ;
375379 return this . waitForTable ( resourceConfig . table || underscore ( resourceConfig . name ) , options ) . then ( ( ) => {
376- return this . filterSequence ( this . selectTable ( resourceConfig , options ) , params ) . update ( attrs , { returnChanges : true } ) . run ( ) ;
380+ return this . filterSequence ( this . selectTable ( resourceConfig , options ) , params ) . update ( attrs , { returnChanges : true } ) . run ( ) ;
377381 } ) . then ( cursor => {
378- let items = [ ] ;
379- cursor . changes . forEach ( change => items . push ( change . new_val ) ) ;
380- return items ;
382+ if ( cursor && cursor . changes && cursor . changes . length ) {
383+ let items = [ ] ;
384+ cursor . changes . forEach ( change => items . push ( change . new_val ) ) ;
385+ return items ;
386+ } else {
387+ return this . filterSequence ( this . selectTable ( resourceConfig , options ) , params ) . run ( ) ;
388+ }
381389 } ) ;
382390 }
383391
@@ -397,4 +405,4 @@ class DSRethinkDBAdapter {
397405 }
398406}
399407
400- export default DSRethinkDBAdapter ;
408+ module . exports = DSRethinkDBAdapter ;
0 commit comments