updateFeatureToggle method
Implementation
Future<void> updateFeatureToggle(FeatureToggleModel model) async {
try {
if (model.uid is String) {
var ref = this._firestore.collection('FeatureToggles');
if (model.parent is Map<String, String>) {
final keys = model.parent!.keys.toList();
if (keys.length > 1) {
throw FeatureTogglesDataServiceException(
code: RdevCode.InvalidArgument,
message: 'Parent can only have one key');
}
final key = keys.first;
final value = model.parent![key];
final collectionPath = key.split(RegExp(r'(?=[A-Z])'));
final parentRef =
_firestore.collection(collectionPath.join('/')).doc(value);
ref = parentRef.collection('FeatureToggles');
}
var doc = ref.doc(model.uid);
await doc.set(model.toJson(), SetOptions(merge: true));
} else {
throw FeatureTogglesDataServiceException(
code: RdevCode.InvalidArgument,
message: 'Feature toggle uid is required');
}
} catch (err) {
throw FeatureTogglesDataServiceException(message: err.toString());
}
}