@@ -630,10 +630,9 @@ function untransformObject(schema, className, mongoObject, isNestedObject = fals
630
630
if ( mongoObject === null ) {
631
631
return null ;
632
632
}
633
-
634
633
if ( mongoObject instanceof Array ) {
635
- return mongoObject . map ( ( o ) => {
636
- return untransformObject ( schema , className , o , true ) ;
634
+ return mongoObject . map ( arrayEntry => {
635
+ return untransformObject ( schema , className , arrayEntry , true ) ;
637
636
} ) ;
638
637
}
639
638
@@ -647,31 +646,84 @@ function untransformObject(schema, className, mongoObject, isNestedObject = fals
647
646
648
647
var restObject = untransformACL ( mongoObject ) ;
649
648
for ( var key in mongoObject ) {
649
+ // TODO: This could use some cleanup. Default case handling still needs to happen for some nested keys.
650
650
switch ( key ) {
651
651
case '_id' :
652
+ if ( isNestedObject ) {
653
+ restObject [ key ] = untransformObject ( schema , className , mongoObject [ key ] , true ) ;
654
+ break ;
655
+ }
652
656
restObject [ 'objectId' ] = '' + mongoObject [ key ] ;
653
657
break ;
654
658
case '_hashed_password' :
659
+ if ( isNestedObject ) {
660
+ restObject [ key ] = untransformObject ( schema , className , mongoObject [ key ] , true ) ;
661
+ break ;
662
+ }
655
663
restObject [ 'password' ] = mongoObject [ key ] ;
656
664
break ;
657
665
case '_acl' :
666
+ if ( isNestedObject ) {
667
+ restObject [ key ] = untransformObject ( schema , className , mongoObject [ key ] , true ) ;
668
+ break ;
669
+ }
658
670
case '_email_verify_token' :
671
+ if ( isNestedObject ) {
672
+ restObject [ key ] = untransformObject ( schema , className , mongoObject [ key ] , true ) ;
673
+ break ;
674
+ }
659
675
case '_perishable_token' :
676
+ if ( isNestedObject ) {
677
+ restObject [ key ] = untransformObject ( schema , className , mongoObject [ key ] , true ) ;
678
+ break ;
679
+ }
660
680
case '_tombstone' :
681
+ if ( isNestedObject ) {
682
+ restObject [ key ] = untransformObject ( schema , className , mongoObject [ key ] , true ) ;
683
+ break ;
684
+ }
661
685
break ;
662
686
case '_session_token' :
687
+ if ( isNestedObject ) {
688
+ restObject [ key ] = untransformObject ( schema , className , mongoObject [ key ] , true ) ;
689
+ break ;
690
+ }
663
691
restObject [ 'sessionToken' ] = mongoObject [ key ] ;
664
692
break ;
665
693
case 'updatedAt' :
694
+ if ( isNestedObject ) {
695
+ restObject [ key ] = untransformObject ( schema , className , mongoObject [ key ] , true ) ;
696
+ break ;
697
+ }
666
698
case '_updated_at' :
699
+ if ( isNestedObject ) {
700
+ restObject [ key ] = untransformObject ( schema , className , mongoObject [ key ] , true ) ;
701
+ break ;
702
+ }
667
703
restObject [ 'updatedAt' ] = Parse . _encode ( new Date ( mongoObject [ key ] ) ) . iso ;
668
704
break ;
669
705
case 'createdAt' :
706
+ if ( isNestedObject ) {
707
+ restObject [ key ] = untransformObject ( schema , className , mongoObject [ key ] , true ) ;
708
+ break ;
709
+ }
670
710
case '_created_at' :
711
+ if ( isNestedObject ) {
712
+ restObject [ key ] = untransformObject ( schema , className , mongoObject [ key ] , true ) ;
713
+ break ;
714
+ }
671
715
restObject [ 'createdAt' ] = Parse . _encode ( new Date ( mongoObject [ key ] ) ) . iso ;
672
716
break ;
673
717
case 'expiresAt' :
718
+ if ( isNestedObject ) {
719
+ restObject [ key ] = untransformObject ( schema , className , mongoObject [ key ] , true ) ;
720
+ break ;
721
+ }
674
722
case '_expiresAt' :
723
+ if ( isNestedObject ) {
724
+ restObject [ key ] = untransformObject ( schema , className , mongoObject [ key ] , true ) ;
725
+ break ;
726
+ }
675
727
restObject [ 'expiresAt' ] = Parse . _encode ( new Date ( mongoObject [ key ] ) ) ;
676
728
break ;
677
729
default :
@@ -728,8 +780,7 @@ function untransformObject(schema, className, mongoObject, isNestedObject = fals
728
780
break ;
729
781
}
730
782
}
731
- restObject [ key ] = untransformObject ( schema , className ,
732
- mongoObject [ key ] , true ) ;
783
+ restObject [ key ] = untransformObject ( schema , className , mongoObject [ key ] , true ) ;
733
784
}
734
785
}
735
786
return restObject ;
0 commit comments