getQuizIntegrityInformations static method

QuizIntegrityInformations getQuizIntegrityInformations(
  1. BuildContext context,
  2. QuizModel quiz
)

Implementation

static QuizIntegrityInformations getQuizIntegrityInformations(BuildContext context, QuizModel quiz) {
  var diagnosis = QuizIntegrityModel.globalDuplicateDiagnostics(quiz);
  String errorMessage = '';

  if (diagnosis.duplicatedStepKeys.isNotEmpty) {
    errorMessage = '🚩 StepKey duplicates: ${diagnosis.duplicatedStepKeys}';
  }

  if (diagnosis.duplicatedQuestionKeys.isNotEmpty) {
    errorMessage = '$errorMessage\n🚩 QuestionKey duplicates: ${diagnosis.duplicatedQuestionKeys}';
  }

  if (diagnosis.emptyQuestionStepKeys.isNotEmpty) {
    errorMessage = '$errorMessage\n🚩 Empty Step: ${diagnosis.emptyQuestionStepKeys}';
  }

  if (kDebugMode && errorMessage.isNotEmpty == true) {
    debugPrint(errorMessage);
  }

  return QuizIntegrityInformations(
    duplicateQuestionKey: diagnosis.duplicatedQuestionKeys,
    duplicateStepKeys: diagnosis.duplicatedStepKeys,
    stepsNumber: quiz.steps.length,
    globalQuestionNumber: globalQuestionsNumber(quiz),
    globalQuestionsConditionnal: globalQuestionsConditionnal(quiz),
    globalQuestionsInternal: globalQuestionsInternal(quiz),
    hasUselessSteppingMode: hasUselessSteppingMode(quiz),
    emptyQuestionStepKeys: diagnosis.emptyQuestionStepKeys,
    duplicatesOptions: diagnosis.duplicateOptions,
  );
}