convertToChaptersAndCompletionDto method

  1. @override
ChaptersAndCompletionDto convertToChaptersAndCompletionDto(
  1. {required ChaptersAndCompletionRates chaptersAndCompletionRates}
)
override

Implementation

@override
ChaptersAndCompletionDto convertToChaptersAndCompletionDto({
  required ChaptersAndCompletionRates chaptersAndCompletionRates,
}) {
  final chapters = chaptersAndCompletionRates.chapters;
  final completedChaptersNumber =
      chaptersAndCompletionRates.completedChaptersNumber;
  final totalChaptersNumber = chaptersAndCompletionRates.totalChaptersNumber;

  if (chapters == null ||
      completedChaptersNumber == null ||
      totalChaptersNumber == null ||
      chapters.length != totalChaptersNumber) {
    throw Exception('学習チャプター一覧が不正です');
  }

  final completionRate = completedChaptersNumber / totalChaptersNumber;

  final chapterDtos = chapters
      .map(
        (e) => convertToChapterDto(
          chapter: e,
        ),
      )
      .toList();

  return ChaptersAndCompletionDto(
    learningChapters: chapterDtos,
    completionRate: completionRate,
  );
}