updateUserDetail method

Future<void> updateUserDetail({
  1. required String uid,
  2. PeamanUserUpdater? updater,
  3. PeamanUserPartialUpdater? positivePartialUpdater,
  4. PeamanUserPartialUpdater? negativePartialUpdater,
})

Implementation

Future<void> updateUserDetail({
  required final String uid,
  final PeamanUserUpdater? updater,
  final PeamanUserPartialUpdater? positivePartialUpdater,
  final PeamanUserPartialUpdater? negativePartialUpdater,
}) async {
  try {
    final _userRef = PeamanReferenceHelper.usersCol.doc(uid);
    final _data = <String, dynamic>{};

    final _updaterData = updater?.toJson() ?? _data;
    final _positivePartialUpdaterData =
        positivePartialUpdater?.toPositiveUpdateJson() ?? _data;
    final _negativePartialUpdaterData =
        negativePartialUpdater?.toNegativeUpdateJson() ?? _data;

    _data.addAll(_updaterData);
    _data.addAll(_positivePartialUpdaterData);
    _data.addAll(_negativePartialUpdaterData);

    if (_data.isNotEmpty) {
      await _userRef.update(_data);
    }

    print('Success: Updating details of user $uid');
  } catch (e) {
    print(e);
    print('Error!!!: Updating details of user');
  }
}