convertToContentDetailDto method

  1. @override
ContentDetailDto convertToContentDetailDto(
  1. {required ContentDetails details}
)
override

Implementation

@override
ContentDetailDto convertToContentDetailDto({
  required ContentDetails details,
}) {
  final contentType = details.contentType;

  switch (contentType) {
    case ContentType.docs:
      return ContentDetailDto(
        contentType: LearningContentType.docs,
        videoUrl: null,
        documentTitle: details.documentTitle,
        document: details.document,
        quizContent: null,
      );

    case ContentType.video:
      return ContentDetailDto(
        contentType: LearningContentType.video,
        videoUrl: details.videoUrl,
        documentTitle: null,
        document: null,
        quizContent: null,
      );

    case ContentType.quiz:
      if (details.question == null) {
        throw Exception('クイズコンテンツ詳細が不正です');
      }

      final quizContent = convertToQuizContentDto(
        question: details.question!,
      );

      return ContentDetailDto(
        contentType: LearningContentType.quiz,
        videoUrl: null,
        documentTitle: null,
        document: null,
        quizContent: quizContent,
      );

    default:
      throw Exception('学習コンテンツ詳細が不正です');
  }
}