getUserByReference method

Future<SetonixUser?> getUserByReference(
  1. String reference
)

Implementation

Future<SetonixUser?> getUserByReference(String reference) async {
  if (reference.isEmpty) return null;
  switch (reference[0]) {
    case kUserReferenceID:
      final id = reference.substring(1);
      if (id.isEmpty) return null;
      final idInt = int.tryParse(id);
      if (idInt == null) return null;
      return getUser(idInt);
    case kUserReferenceName:
      final name = reference.substring(1);
      return getUserByName(name);
    case kUserReferenceFingerprint:
      final fingerprint = reference.substring(1);
      return service?.getUser(fingerprint);
    default:
      final id = int.tryParse(reference);
      if (id != null) {
        return getUser(id);
      }
      final user = getUserByName(reference);
      if (user != null) {
        return user;
      }
      return service?.getUserFromName(reference);
  }
}