validateRuc static method
Validates an Ecuadorian RUC number against all possible RUC types.
ruc The RUC number to validate.
Returns an IdentificationResult with the validation result.
Implementation
static IdentificationResult validateRuc(String ruc) {
final validRucNatural = validateRucByType(
ruc,
TypeIdentification.rucPersonNatural,
);
final validRucPrivate = validateRucByType(
ruc,
TypeIdentification.rucSocietyPrivate,
);
final validRucPublic = validateRucByType(
ruc,
TypeIdentification.rucPublicSociety,
);
if (!validRucNatural.isValid &&
!validRucPrivate.isValid &&
!validRucPublic.isValid) {
/// Every type failed, so the first failure is reported as a whole: its
/// message key, arguments and error code describe the same problem.
final failure = [
validRucNatural,
validRucPrivate,
validRucPublic,
].firstWhere(
(result) => result.messageKey != null,
orElse: () => validRucNatural,
);
return IdentificationResult(
isValid: false,
messageKey: failure.messageKey,
messageArgs: failure.messageArgs,
typeCodeError: failure.typeCodeError,
);
}
return IdentificationResult(
isValid: true,
errorMessage: null,
typeCodeError: null,
);
}