createFeatureToggle method
Implementation
Future<void> createFeatureToggle(FeatureToggleModel model) async {
try {
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 = model.uid is String ? ref.doc(model.uid) : ref.doc();
await doc.set(model.toJson());
} catch (err) {
throw FeatureTogglesDataServiceException(message: err.toString());
}
}