@@ -594,7 +594,7 @@ Schema.prototype.validateRequiredColumns = function(className, object, query) {
594
594
if ( ! columns || columns . length == 0 ) {
595
595
return Promise . resolve ( this ) ;
596
596
}
597
-
597
+
598
598
var missingColumns = columns . filter ( function ( column ) {
599
599
if ( query && query . objectId ) {
600
600
if ( object [ column ] && typeof object [ column ] === "object" ) {
@@ -604,15 +604,15 @@ Schema.prototype.validateRequiredColumns = function(className, object, query) {
604
604
// Not trying to do anything there
605
605
return false ;
606
606
}
607
- return ! object [ column ]
607
+ return ! object [ column ]
608
608
} ) ;
609
-
609
+
610
610
if ( missingColumns . length > 0 ) {
611
611
throw new Parse . Error (
612
612
Parse . Error . INCORRECT_TYPE ,
613
613
missingColumns [ 0 ] + ' is required.' ) ;
614
614
}
615
-
615
+
616
616
return Promise . resolve ( this ) ;
617
617
}
618
618
@@ -699,19 +699,44 @@ function getObjectType(obj) {
699
699
if ( obj instanceof Array ) {
700
700
return 'array' ;
701
701
}
702
- if ( obj . __type === 'Pointer' && obj . className ) {
703
- return '*' + obj . className ;
704
- }
705
- if ( obj . __type === 'File' && obj . name ) {
706
- return 'file' ;
707
- }
708
- if ( obj . __type === 'Date' && obj . iso ) {
709
- return 'date' ;
710
- }
711
- if ( obj . __type == 'GeoPoint' &&
712
- obj . latitude != null &&
713
- obj . longitude != null ) {
714
- return 'geopoint' ;
702
+ if ( obj . __type ) {
703
+ switch ( obj . __type ) {
704
+ case 'Pointer' :
705
+ if ( obj . className ) {
706
+ return '*' + obj . className ;
707
+ } else {
708
+ throw new Parse . Error ( Parse . Error . INCORRECT_TYPE , "This is not a valid " + obj . __type ) ;
709
+ }
710
+ break ;
711
+ case 'File' :
712
+ if ( obj . name ) {
713
+ return 'file' ;
714
+ } else {
715
+ throw new Parse . Error ( Parse . Error . INCORRECT_TYPE , "This is not a valid " + obj . __type ) ;
716
+ }
717
+ break ;
718
+ case 'Date' :
719
+ if ( obj . iso ) {
720
+ return 'date' ;
721
+ } else {
722
+ throw new Parse . Error ( Parse . Error . INCORRECT_TYPE , "This is not a valid " + obj . __type ) ;
723
+ }
724
+ break ;
725
+ case 'GeoPoint' :
726
+ if ( obj . latitude != null && obj . longitude != null ) {
727
+ return 'geopoint' ;
728
+ } else {
729
+ throw new Parse . Error ( Parse . Error . INCORRECT_TYPE , "This is not a valid " + obj . __type ) ;
730
+ }
731
+ break ;
732
+ case 'Bytes' :
733
+ if ( ! obj . base64 ) {
734
+ throw new Parse . Error ( Parse . Error . INCORRECT_TYPE , "This is not a valid " + obj . __type ) ;
735
+ }
736
+ break ;
737
+ default :
738
+ throw new Parse . Error ( Parse . Error . INCORRECT_TYPE , 'invalid type: ' + obj . __type ) ;
739
+ }
715
740
}
716
741
if ( obj [ '$ne' ] ) {
717
742
return getObjectType ( obj [ '$ne' ] ) ;
0 commit comments