@@ -461,8 +461,10 @@ + (BFTask *)_deepSaveAsyncChildrenOfObject:(id)object withCurrentUser:(PFUser *)
461
461
PFRESTCommand *command = nil ;
462
462
@synchronized ([object lock ]) {
463
463
[object _objectWillSave ];
464
- [object _checkSaveParametersWithCurrentUser: currentUser];
465
464
NSError *error;
465
+ if (![object _checkSaveParametersWithCurrentUser: currentUser error: &error] && error) {
466
+ return error;
467
+ }
466
468
command = [object _constructSaveCommandForChanges: [object unsavedChanges ]
467
469
sessionToken: sessionToken
468
470
objectEncoder: [PFPointerObjectEncoder objectEncoder ]
@@ -716,7 +718,7 @@ - (BOOL)isDataAvailableForKey:(NSString *)key {
716
718
// /--------------------------------------
717
719
718
720
// Validations that are done on save. For now, there is nothing.
719
- - (void )_checkSaveParametersWithCurrentUser : (PFUser *)currentUser {
721
+ - (void )_checkSaveParametersWithCurrentUser : (PFUser *)currentUser error : ( NSError **) error {
720
722
return ;
721
723
}
722
724
@@ -1091,18 +1093,21 @@ - (BFTask *)_enqueueSaveEventuallyWithChildren:(BOOL)saveChildren {
1091
1093
PFOperationSet *changes = [self unsavedChanges ];
1092
1094
changes.saveEventually = YES ;
1093
1095
[self startSave ];
1094
- [self _checkSaveParametersWithCurrentUser: currentUser];
1095
1096
NSError *error;
1096
- PFRESTCommand *command = [self _constructSaveCommandForChanges: changes
1097
- sessionToken: sessionToken
1098
- objectEncoder: [PFPointerOrLocalIdObjectEncoder objectEncoder ]
1099
- error: &error];
1100
- if (!command && error) {
1097
+ if (![self _checkSaveParametersWithCurrentUser: currentUser error: &error] && error) {
1101
1098
saveTask = [BFTask taskWithError: error];
1102
- } else {
1103
- // Enqueue the eventually operation!
1104
- saveTask = [[Parse _currentManager ].eventuallyQueue enqueueCommandInBackground: command withObject: self ];
1105
- [self _enqueueSaveEventuallyOperationAsync: changes];
1099
+ } else {
1100
+ PFRESTCommand *command = [self _constructSaveCommandForChanges: changes
1101
+ sessionToken: sessionToken
1102
+ objectEncoder: [PFPointerOrLocalIdObjectEncoder objectEncoder ]
1103
+ error: &error];
1104
+ if (!command && error) {
1105
+ saveTask = [BFTask taskWithError: error];
1106
+ } else {
1107
+ // Enqueue the eventually operation!
1108
+ saveTask = [[Parse _currentManager ].eventuallyQueue enqueueCommandInBackground: command withObject: self ];
1109
+ [self _enqueueSaveEventuallyOperationAsync: changes];
1110
+ }
1106
1111
}
1107
1112
}
1108
1113
saveTask = [saveTask continueWithBlock: ^id (BFTask *task) {
@@ -1410,8 +1415,10 @@ - (BFTask *)saveAsync:(BFTask *)toAwait {
1410
1415
return childrenTask;
1411
1416
}
1412
1417
return [[childrenTask continueWithSuccessBlock: ^id (BFTask *task) {
1413
- [self _checkSaveParametersWithCurrentUser: currentUser];
1414
1418
NSError *error;
1419
+ if (![self _checkSaveParametersWithCurrentUser: currentUser error: &error] && error) {
1420
+ return error;
1421
+ }
1415
1422
PFRESTCommand *command = [self _constructSaveCommandForChanges: changes
1416
1423
sessionToken: sessionToken
1417
1424
objectEncoder: [PFPointerObjectEncoder objectEncoder ]
0 commit comments