getQuizDetails method

Future<void> getQuizDetails()

Implementation

Future<void> getQuizDetails() async {
  //GET quiz response
  try {
    // si on utilise une clé de participation,
    // on appele le details de quiz
    if (widget.useParticipationKey == true) {
      assert(
        widget.services.getParticipationDetails != null,
        'You must provide a getDetails if you use ParticapationKey method',
      );
      var participationResult = await widget.services.getParticipationDetails!();
      quizDetails = participationResult;
      quiz = QuizModel.initFromParticipationsDTO(participationResult);
      checkIntegrity(); //quiz health check
    }
    // si on n'utilise pas une clé de participation
    // c'est que l'on utilise un example de quiz
    else if (widget.quizTemplate != null) {
      quiz = QuizModel.initFromTemplate(widget.quizTemplate!);
      checkIntegrity(); //quiz health check
    }
  } catch (e, s) {
    if (kDebugMode) print('❌ Impossible to getQuizDetails: $e: $s');
    widget.logger?.captureException(e, stackTrace: s, scope: "inside QuizEngineState -> Future<void> getQuizDetails()");
    await widget.actions?.onParticipationLoadingErrorCallback();
    onParticipationLoadingError();
  }

  if (!mounted) return;
  setState(() {
    isLoading = false;
  });
}