validate method
ValidationResult
validate({
- required Credential<
Claim> credential, - required DcqlQuery query,
- required int credentialIndex,
Implementation
ValidationResult validate({
required Credential credential,
required DcqlQuery query,
required int credentialIndex,
}) {
if (credential.claims == null) {
return ValidationResult.valid();
}
if (credential.claims != null) {
final seenIds = <String>{};
for (var j = 0; j < credential.claims!.length; j++) {
final claim = credential.claims![j];
final contextPath = 'query.credentials[$credentialIndex].claims[$j]';
if (claim.id != null) {
if (seenIds.contains(claim.id)) {
return ValidationResult.invalid(
contextPath: '$contextPath.id',
errors: ['Duplicate claim ID "${claim.id}" found'],
);
}
seenIds.add(claim.id!);
}
final idValidationResult = validateId(credential, claim, contextPath);
if (!idValidationResult.isValid) return idValidationResult;
final pathValidationResult = validatePath(claim.path, '$contextPath.path');
if (!pathValidationResult.isValid) return pathValidationResult;
final valuesValidationResult = validateValues(claim.values, '$contextPath.values');
if (!valuesValidationResult.isValid) return valuesValidationResult;
}
}
return ValidationResult.valid();
}