purgeLocalUserData method

ProgressListener? purgeLocalUserData(
  1. String userID, {
  2. void onComplete(
    1. GemError error
    )?,
})

Deletes all the local data of a user, for example when the account is deleted.

Removes the profile, the activities and the saved shared activities, with their cached files. The server data is not touched.

Parameters

Returns

Implementation

ProgressListener? purgeLocalUserData(
  String userID, {
  void Function(GemError error)? onComplete,
}) {
  final EventDrivenProgressListener progressListener =
      EventDrivenProgressListener();
  GemKitPlatform.instance.registerEventHandler(
    progressListener.id,
    progressListener,
  );

  progressListener.registerOnCompleteWithData((
    int err,
    String hint,
    Map<dynamic, dynamic> json,
  ) {
    GemKitPlatform.instance.unregisterEventHandler(progressListener.id);
    onComplete?.call(GemErrorExtension.fromCode(err));
  });

  final OperationResult resultString = objectMethod(
    pointerId,
    'ActivityStore',
    'purgeLocalUserData',
    args: <String, dynamic>{
      'userID': userID,
      'listener': progressListener.id,
    },
  );
  final GemError errorCode = GemErrorExtension.fromCode(
    resultString['result'],
  );

  if (errorCode != GemError.success) {
    onComplete?.call(errorCode);
    return null;
  }

  return progressListener;
}