validatePath method

ValidationResult validatePath(
  1. List path,
  2. String contextPath
)

Implementation

ValidationResult validatePath(List<dynamic> path, String contextPath) {
  if (path.isEmpty) {
    return ValidationResult.invalid(
      contextPath: contextPath,
      errors: ['Claim path cannot be empty.'],
    );
  }

  for (var k = 0; k < path.length; k++) {
    final pathElement = path[k];
    final isInt = pathElement is int;
    final isString = pathElement is String;
    final isNull = pathElement == null;

    if (!isInt && !isString && !isNull) {
      return ValidationResult.invalid(
        contextPath: '$contextPath[$k]',
        errors: ['Claim path elements must be String, int (>=0), or null.'],
      );
    }

    if (isInt && pathElement < 0) {
      return ValidationResult.invalid(
        contextPath: '$contextPath[$k]',
        errors: ['Claim path elements must be int (>=0).'],
      );
    }
  }

  return ValidationResult.valid();
}