From 5368c9e22f9a6b427466e9422645d688953013c0 Mon Sep 17 00:00:00 2001 From: Gil Date: Sun, 15 Apr 2018 13:06:06 -0700 Subject: Replace the `SetOptions` object with a simple boolean. (#1098) Instead of calling `setData(["a": "b"], options: SetOptions.merge())` call `setData(["a": "b"], merge: true)` --- Firestore/Source/API/FIRDocumentReference.mm | 16 +++---- Firestore/Source/API/FIRSetOptions+Internal.h | 33 -------------- Firestore/Source/API/FIRSetOptions.mm | 63 --------------------------- Firestore/Source/API/FIRTransaction.mm | 9 ++-- Firestore/Source/API/FIRWriteBatch.mm | 9 ++-- Firestore/Source/API/FSTUserDataConverter.h | 3 +- Firestore/Source/API/FSTUserDataConverter.mm | 7 ++- 7 files changed, 19 insertions(+), 121 deletions(-) delete mode 100644 Firestore/Source/API/FIRSetOptions+Internal.h delete mode 100644 Firestore/Source/API/FIRSetOptions.mm (limited to 'Firestore/Source/API') diff --git a/Firestore/Source/API/FIRDocumentReference.mm b/Firestore/Source/API/FIRDocumentReference.mm index d3a9295..2423472 100644 --- a/Firestore/Source/API/FIRDocumentReference.mm +++ b/Firestore/Source/API/FIRDocumentReference.mm @@ -28,7 +28,6 @@ #import "Firestore/Source/API/FIRDocumentSnapshot+Internal.h" #import "Firestore/Source/API/FIRFirestore+Internal.h" #import "Firestore/Source/API/FIRListenerRegistration+Internal.h" -#import "Firestore/Source/API/FIRSetOptions+Internal.h" #import "Firestore/Source/API/FSTUserDataConverter.h" #import "Firestore/Source/Core/FSTEventManager.h" #import "Firestore/Source/Core/FSTFirestoreClient.h" @@ -117,24 +116,23 @@ NS_ASSUME_NONNULL_BEGIN } - (void)setData:(NSDictionary *)documentData { - return [self setData:documentData options:[FIRSetOptions overwrite] completion:nil]; + return [self setData:documentData merge:NO completion:nil]; } -- (void)setData:(NSDictionary *)documentData options:(FIRSetOptions *)options { - return [self setData:documentData options:options completion:nil]; +- (void)setData:(NSDictionary *)documentData merge:(BOOL)merge { + return [self setData:documentData merge:merge completion:nil]; } - (void)setData:(NSDictionary *)documentData completion:(nullable void (^)(NSError *_Nullable error))completion { - return [self setData:documentData options:[FIRSetOptions overwrite] completion:completion]; + return [self setData:documentData merge:NO completion:completion]; } - (void)setData:(NSDictionary *)documentData - options:(FIRSetOptions *)options + merge:(BOOL)merge completion:(nullable void (^)(NSError *_Nullable error))completion { - FSTParsedSetData *parsed = options.isMerge - ? [self.firestore.dataConverter parsedMergeData:documentData] - : [self.firestore.dataConverter parsedSetData:documentData]; + FSTParsedSetData *parsed = merge ? [self.firestore.dataConverter parsedMergeData:documentData] + : [self.firestore.dataConverter parsedSetData:documentData]; return [self.firestore.client writeMutations:[parsed mutationsWithKey:self.key precondition:Precondition::None()] completion:completion]; diff --git a/Firestore/Source/API/FIRSetOptions+Internal.h b/Firestore/Source/API/FIRSetOptions+Internal.h deleted file mode 100644 index 9118096..0000000 --- a/Firestore/Source/API/FIRSetOptions+Internal.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "FIRSetOptions.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface FIRSetOptions () - -- (instancetype)initWithMerge:(BOOL)merge NS_DESIGNATED_INITIALIZER; - -@end - -@interface FIRSetOptions (Internal) - -+ (instancetype)overwrite; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Firestore/Source/API/FIRSetOptions.mm b/Firestore/Source/API/FIRSetOptions.mm deleted file mode 100644 index b41086c..0000000 --- a/Firestore/Source/API/FIRSetOptions.mm +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#import "Firestore/Source/API/FIRSetOptions+Internal.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation FIRSetOptions - -- (instancetype)initWithMerge:(BOOL)merge { - if (self = [super init]) { - _merge = merge; - } - return self; -} - -+ (instancetype)merge { - return [[FIRSetOptions alloc] initWithMerge:YES]; -} - -- (BOOL)isEqual:(id)other { - if (self == other) { - return YES; - } else if (![other isKindOfClass:[FIRSetOptions class]]) { - return NO; - } - - FIRSetOptions *otherOptions = (FIRSetOptions *)other; - return otherOptions.merge == self.merge; -} - -- (NSUInteger)hash { - return self.merge ? 1231 : 1237; -} -@end - -@implementation FIRSetOptions (Internal) - -+ (instancetype)overwrite { - static FIRSetOptions *overwriteInstance = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - overwriteInstance = [[FIRSetOptions alloc] initWithMerge:NO]; - }); - return overwriteInstance; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Firestore/Source/API/FIRTransaction.mm b/Firestore/Source/API/FIRTransaction.mm index 2d1dd68..668a359 100644 --- a/Firestore/Source/API/FIRTransaction.mm +++ b/Firestore/Source/API/FIRTransaction.mm @@ -19,7 +19,6 @@ #import "Firestore/Source/API/FIRDocumentReference+Internal.h" #import "Firestore/Source/API/FIRDocumentSnapshot+Internal.h" #import "Firestore/Source/API/FIRFirestore+Internal.h" -#import "Firestore/Source/API/FIRSetOptions+Internal.h" #import "Firestore/Source/API/FSTUserDataConverter.h" #import "Firestore/Source/Core/FSTTransaction.h" #import "Firestore/Source/Model/FSTDocument.h" @@ -62,15 +61,15 @@ NS_ASSUME_NONNULL_BEGIN - (FIRTransaction *)setData:(NSDictionary *)data forDocument:(FIRDocumentReference *)document { - return [self setData:data forDocument:document options:[FIRSetOptions overwrite]]; + return [self setData:data forDocument:document merge:NO]; } - (FIRTransaction *)setData:(NSDictionary *)data forDocument:(FIRDocumentReference *)document - options:(FIRSetOptions *)options { + merge:(BOOL)merge { [self validateReference:document]; - FSTParsedSetData *parsed = options.isMerge ? [self.firestore.dataConverter parsedMergeData:data] - : [self.firestore.dataConverter parsedSetData:data]; + FSTParsedSetData *parsed = merge ? [self.firestore.dataConverter parsedMergeData:data] + : [self.firestore.dataConverter parsedSetData:data]; [self.internalTransaction setData:parsed forDocument:document.key]; return self; } diff --git a/Firestore/Source/API/FIRWriteBatch.mm b/Firestore/Source/API/FIRWriteBatch.mm index df6e5e0..1185dae 100644 --- a/Firestore/Source/API/FIRWriteBatch.mm +++ b/Firestore/Source/API/FIRWriteBatch.mm @@ -18,7 +18,6 @@ #import "Firestore/Source/API/FIRDocumentReference+Internal.h" #import "Firestore/Source/API/FIRFirestore+Internal.h" -#import "Firestore/Source/API/FIRSetOptions+Internal.h" #import "Firestore/Source/API/FSTUserDataConverter.h" #import "Firestore/Source/Core/FSTFirestoreClient.h" #import "Firestore/Source/Model/FSTMutation.h" @@ -63,16 +62,16 @@ NS_ASSUME_NONNULL_BEGIN - (FIRWriteBatch *)setData:(NSDictionary *)data forDocument:(FIRDocumentReference *)document { - return [self setData:data forDocument:document options:[FIRSetOptions overwrite]]; + return [self setData:data forDocument:document merge:NO]; } - (FIRWriteBatch *)setData:(NSDictionary *)data forDocument:(FIRDocumentReference *)document - options:(FIRSetOptions *)options { + merge:(BOOL)merge { [self verifyNotCommitted]; [self validateReference:document]; - FSTParsedSetData *parsed = options.isMerge ? [self.firestore.dataConverter parsedMergeData:data] - : [self.firestore.dataConverter parsedSetData:data]; + FSTParsedSetData *parsed = merge ? [self.firestore.dataConverter parsedMergeData:data] + : [self.firestore.dataConverter parsedSetData:data]; [self.mutations addObjectsFromArray:[parsed mutationsWithKey:document.key precondition:Precondition::None()]]; return self; diff --git a/Firestore/Source/API/FSTUserDataConverter.h b/Firestore/Source/API/FSTUserDataConverter.h index ea20b3e..98a65ae 100644 --- a/Firestore/Source/API/FSTUserDataConverter.h +++ b/Firestore/Source/API/FSTUserDataConverter.h @@ -24,7 +24,6 @@ #include "Firestore/core/src/firebase/firestore/model/field_transform.h" #include "Firestore/core/src/firebase/firestore/model/precondition.h" -@class FIRSetOptions; @class FSTObjectValue; @class FSTFieldValue; @class FSTMutation; @@ -130,7 +129,7 @@ typedef id _Nullable (^FSTPreConverterBlock)(id _Nullable); /** Parse document data from a non-merge setData call.*/ - (FSTParsedSetData *)parsedSetData:(id)input; -/** Parse document data from a setData call with '[FIRSetOptions merge]'. */ +/** Parse document data from a setData call with `merge:YES`. */ - (FSTParsedSetData *)parsedMergeData:(id)input; /** Parse update data from an updateData call. */ diff --git a/Firestore/Source/API/FSTUserDataConverter.mm b/Firestore/Source/API/FSTUserDataConverter.mm index 90d68d8..719f6f5 100644 --- a/Firestore/Source/API/FSTUserDataConverter.mm +++ b/Firestore/Source/API/FSTUserDataConverter.mm @@ -20,14 +20,13 @@ #include #include +#import "FIRGeoPoint.h" #import "FIRTimestamp.h" -#import "FIRGeoPoint.h" #import "Firestore/Source/API/FIRDocumentReference+Internal.h" #import "Firestore/Source/API/FIRFieldPath+Internal.h" #import "Firestore/Source/API/FIRFieldValue+Internal.h" #import "Firestore/Source/API/FIRFirestore+Internal.h" -#import "Firestore/Source/API/FIRSetOptions+Internal.h" #import "Firestore/Source/Model/FSTFieldValue.h" #import "Firestore/Source/Model/FSTMutation.h" #import "Firestore/Source/Util/FSTAssert.h" @@ -595,7 +594,7 @@ typedef NS_ENUM(NSInteger, FSTUserDataSource) { // We shouldn't encounter delete sentinels for queries or non-merge setData calls. FSTThrowInvalidArgument( @"FieldValue.delete() can only be used with updateData() and setData() with " - @"SetOptions.merge()%@", + @"merge:true%@", [context fieldDescription]); } @@ -748,7 +747,7 @@ typedef NS_ENUM(NSInteger, FSTUserDataSource) { // We shouldn't encounter delete sentinels for queries or non-merge setData calls. FSTThrowInvalidArgument( @"FieldValue.delete() can only be used with updateData() and setData() with " - @"SetOptions.merge()."); + @"merge: true."); } } else if ([input isKindOfClass:[FSTServerTimestampFieldValue class]]) { if (![context isWrite]) { -- cgit v1.2.3