validateRuc static method

IdentificationResult validateRuc(
  1. String ruc
)

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,
  );
}