fromJson static method

dynamic fromJson(
  1. dynamic value,
  2. String targetType, {
  3. bool growable = false,
})

Returns a native instance of an OpenAPI class matching the targetType.

Implementation

static dynamic fromJson(dynamic value, String targetType, {bool growable = false,}) {
  try {
    switch (targetType) {
      case 'String':
        return value is String ? value : value.toString();
      case 'int':
        return value is int ? value : int.parse('$value');
      case 'double':
        return value is double ? value : double.parse('$value');
      case 'bool':
        if (value is bool) {
          return value;
        }
        final valueString = '$value'.toLowerCase();
        return valueString == 'true' || valueString == '1';
      case 'DateTime':
        return value is DateTime ? value : DateTime.tryParse(value);
      case 'APITokenCost':
        return APITokenCost.fromJson(value);
      case 'AcceptanceEnum':
        return AcceptanceEnumTypeTransformer().decode(value);
      case 'ActiveUsersData':
        return ActiveUsersData.fromJson(value);
      case 'ActiveUsersList':
        return ActiveUsersList.fromJson(value);
      case 'ActiveUsersPerCourse':
        return ActiveUsersPerCourse.fromJson(value);
      case 'ActiveUsersPerCourseData':
        return ActiveUsersPerCourseData.fromJson(value);
      case 'ActivityAPI':
        return ActivityAPI.fromJson(value);
      case 'ActivityData':
        return ActivityData.fromJson(value);
      case 'AlignMentorBubbleEnum':
        return AlignMentorBubbleEnumTypeTransformer().decode(value);
      case 'AskMentorRequest':
        return AskMentorRequest.fromJson(value);
      case 'AskMentorResponse':
        return AskMentorResponse.fromJson(value);
      case 'Assertions':
        return Assertions.fromJson(value);
      case 'AudioToTextRequest':
        return AudioToTextRequest.fromJson(value);
      case 'AudioToTextResponse':
        return AudioToTextResponse.fromJson(value);
      case 'Average':
        return Average.fromJson(value);
      case 'AverageData':
        return AverageData.fromJson(value);
      case 'AverageOvertime':
        return AverageOvertime.fromJson(value);
      case 'AvgCourseGradeWithCutoff':
        return AvgCourseGradeWithCutoff.fromJson(value);
      case 'AvgCourseGradeWithCutoffData':
        return AvgCourseGradeWithCutoffData.fromJson(value);
      case 'BlankEnum':
        return BlankEnumTypeTransformer().decode(value);
      case 'Bot':
        return Bot.fromJson(value);
      case 'BotCommand':
        return BotCommand.fromJson(value);
      case 'BotCreate':
        return BotCreate.fromJson(value);
      case 'ChatHistory':
        return ChatHistory.fromJson(value);
      case 'ChatHistoryItem':
        return ChatHistoryItem.fromJson(value);
      case 'ChatHistorySessionId':
        return ChatHistorySessionId.fromJson(value);
      case 'ChatSessionRequest':
        return ChatSessionRequest.fromJson(value);
      case 'ChatSessionResponse':
        return ChatSessionResponse.fromJson(value);
      case 'ChatSessionWithMessage':
        return ChatSessionWithMessage.fromJson(value);
      case 'CheckDocumentTrainingStatus':
        return CheckDocumentTrainingStatus.fromJson(value);
      case 'CognitiveSkillsEnum':
        return CognitiveSkillsEnumTypeTransformer().decode(value);
      case 'Count':
        return Count.fromJson(value);
      case 'CountData':
        return CountData.fromJson(value);
      case 'CourseCompletionPerCourse':
        return CourseCompletionPerCourse.fromJson(value);
      case 'CourseCompletionPerCourseData':
        return CourseCompletionPerCourseData.fromJson(value);
      case 'CourseCompletionSummaryDataOvertime':
        return CourseCompletionSummaryDataOvertime.fromJson(value);
      case 'CourseCompletionSummaryOvertime':
        return CourseCompletionSummaryOvertime.fromJson(value);
      case 'CourseGradeDetailBlock':
        return CourseGradeDetailBlock.fromJson(value);
      case 'CourseGradeDetailSubSection':
        return CourseGradeDetailSubSection.fromJson(value);
      case 'CourseGradeSummary':
        return CourseGradeSummary.fromJson(value);
      case 'CourseGradeSummaryData':
        return CourseGradeSummaryData.fromJson(value);
      case 'CourseGradingDetail':
        return CourseGradingDetail.fromJson(value);
      case 'CourseGradingDetailData':
        return CourseGradingDetailData.fromJson(value);
      case 'CoursePoint':
        return CoursePoint.fromJson(value);
      case 'CourseSkill':
        return CourseSkill.fromJson(value);
      case 'Credential':
        return Credential.fromJson(value);
      case 'CredentialCredentialType':
        return CredentialCredentialType.fromJson(value);
      case 'CredentialExpiresDuration':
        return CredentialExpiresDuration.fromJson(value);
      case 'CredentialIssuingSignal':
        return CredentialIssuingSignal.fromJson(value);
      case 'CredentialTypeEnum':
        return CredentialTypeEnumTypeTransformer().decode(value);
      case 'DefaultResponse':
        return DefaultResponse.fromJson(value);
      case 'DesiredRole':
        return DesiredRole.fromJson(value);
      case 'DesiredSkill':
        return DesiredSkill.fromJson(value);
      case 'DetailedGradeSubsection':
        return DetailedGradeSubsection.fromJson(value);
      case 'DetailedGradeView':
        return DetailedGradeView.fromJson(value);
      case 'DetailedGradeViewData':
        return DetailedGradeViewData.fromJson(value);
      case 'DiscordWebhook':
        return DiscordWebhook.fromJson(value);
      case 'EdxSignalReceiverRequest':
        return EdxSignalReceiverRequest.fromJson(value);
      case 'EngagementPerCourse':
        return EngagementPerCourse.fromJson(value);
      case 'EngagementPerCourseData':
        return EngagementPerCourseData.fromJson(value);
      case 'Enrollments':
        return Enrollments.fromJson(value);
      case 'EnrollmentsData':
        return EnrollmentsData.fromJson(value);
      case 'EnrollmentsPerUser':
        return EnrollmentsPerUser.fromJson(value);
      case 'EnrollmentsPerUserData':
        return EnrollmentsPerUserData.fromJson(value);
      case 'ExpiresDurationEnum':
        return ExpiresDurationEnumTypeTransformer().decode(value);
      case 'FloatOverTime':
        return FloatOverTime.fromJson(value);
      case 'FreeUsageCount':
        return FreeUsageCount.fromJson(value);
      case 'GradingPerUser':
        return GradingPerUser.fromJson(value);
      case 'GradingPerUserData':
        return GradingPerUserData.fromJson(value);
      case 'GuidedPromptsResponse':
        return GuidedPromptsResponse.fromJson(value);
      case 'IBLAIPlatformMeta':
        return IBLAIPlatformMeta.fromJson(value);
      case 'IntegrationCredential':
        return IntegrationCredential.fromJson(value);
      case 'IssuingSignalEnum':
        return IssuingSignalEnumTypeTransformer().decode(value);
      case 'LLMCredential':
        return LLMCredential.fromJson(value);
      case 'LauncherViewPostRequest':
        return LauncherViewPostRequest.fromJson(value);
      case 'LearnerInformationAPI':
        return LearnerInformationAPI.fromJson(value);
      case 'LearnerInformationAPIData':
        return LearnerInformationAPIData.fromJson(value);
      case 'MathQuestion':
        return MathQuestion.fromJson(value);
      case 'MathQuestionCognitiveSkills':
        return MathQuestionCognitiveSkills.fromJson(value);
      case 'MathQuestionWithAnswer':
        return MathQuestionWithAnswer.fromJson(value);
      case 'MathStudent':
        return MathStudent.fromJson(value);
      case 'Mentor':
        return Mentor.fromJson(value);
      case 'MentorFromTemplateRequest':
        return MentorFromTemplateRequest.fromJson(value);
      case 'MentorFromTemplateWithSettingRequest':
        return MentorFromTemplateWithSettingRequest.fromJson(value);
      case 'MentorLLMFlowResponse':
        return MentorLLMFlowResponse.fromJson(value);
      case 'MentorSettings':
        return MentorSettings.fromJson(value);
      case 'MentorSettingsMentorVisibility':
        return MentorSettingsMentorVisibility.fromJson(value);
      case 'MentorSettingsRequest':
        return MentorSettingsRequest.fromJson(value);
      case 'MentorVisibilityEnum':
        return MentorVisibilityEnumTypeTransformer().decode(value);
      case 'MessageView':
        return MessageView.fromJson(value);
      case 'MessageViewRequest':
        return MessageViewRequest.fromJson(value);
      case 'MessageViewUpdatResponse':
        return MessageViewUpdatResponse.fromJson(value);
      case 'NetRevenueOverTime':
        return NetRevenueOverTime.fromJson(value);
      case 'NullEnum':
        return NullEnumTypeTransformer().decode(value);
      case 'Order':
        return Order.fromJson(value);
      case 'OverTime':
        return OverTime.fromJson(value);
      case 'Overtime':
        return Overtime.fromJson(value);
      case 'OvertimeMeta':
        return OvertimeMeta.fromJson(value);
      case 'OvertimeWithChangeInfo':
        return OvertimeWithChangeInfo.fromJson(value);
      case 'PageContent':
        return PageContent.fromJson(value);
      case 'PaginatedAssertionsList':
        return PaginatedAssertionsList.fromJson(value);
      case 'PaginatedCredentialList':
        return PaginatedCredentialList.fromJson(value);
      case 'PaginatedMentorList':
        return PaginatedMentorList.fromJson(value);
      case 'Pagination':
        return Pagination.fromJson(value);
      case 'PatchedBotCommand':
        return PatchedBotCommand.fromJson(value);
      case 'PatchedBotCreate':
        return PatchedBotCreate.fromJson(value);
      case 'PatchedIntegrationCredential':
        return PatchedIntegrationCredential.fromJson(value);
      case 'PatchedLLMCredential':
        return PatchedLLMCredential.fromJson(value);
      case 'PatchedMathQuestion':
        return PatchedMathQuestion.fromJson(value);
      case 'PatchedMathStudent':
        return PatchedMathStudent.fromJson(value);
      case 'PatchedMentor':
        return PatchedMentor.fromJson(value);
      case 'PatchedPrompt':
        return PatchedPrompt.fromJson(value);
      case 'PatchedSkill':
        return PatchedSkill.fromJson(value);
      case 'PatchedSkillThreshold':
        return PatchedSkillThreshold.fromJson(value);
      case 'PatchedStudentAnswer':
        return PatchedStudentAnswer.fromJson(value);
      case 'PerLearnerCourseLastAccessData':
        return PerLearnerCourseLastAccessData.fromJson(value);
      case 'PerLearnerCourseVideosWatched':
        return PerLearnerCourseVideosWatched.fromJson(value);
      case 'PerLearnerCourseVideosWatchedData':
        return PerLearnerCourseVideosWatchedData.fromJson(value);
      case 'PerLearnerLastAccess':
        return PerLearnerLastAccess.fromJson(value);
      case 'PerLearnerLastAccessData':
        return PerLearnerLastAccessData.fromJson(value);
      case 'PerLearnerTimeSpentInCourseTree':
        return PerLearnerTimeSpentInCourseTree.fromJson(value);
      case 'PerformanceGradesPerCourse':
        return PerformanceGradesPerCourse.fromJson(value);
      case 'PerformanceGradesPerCourseData':
        return PerformanceGradesPerCourseData.fromJson(value);
      case 'PerlearnerCourseProgress':
        return PerlearnerCourseProgress.fromJson(value);
      case 'PerlearnerCourseProgressData':
        return PerlearnerCourseProgressData.fromJson(value);
      case 'PerlearnerEngagementVideosData':
        return PerlearnerEngagementVideosData.fromJson(value);
      case 'PerlearnerEngagementVideosWatchedPerCourse':
        return PerlearnerEngagementVideosWatchedPerCourse.fromJson(value);
      case 'PerlearnerGradeSummary':
        return PerlearnerGradeSummary.fromJson(value);
      case 'PerlearnerGradeSummaryData':
        return PerlearnerGradeSummaryData.fromJson(value);
      case 'PerlearnerGradeWithCutOff':
        return PerlearnerGradeWithCutOff.fromJson(value);
      case 'PerlearnerGradeWithCutOffData':
        return PerlearnerGradeWithCutOffData.fromJson(value);
      case 'PerlearnerGradingPerCourseAPI':
        return PerlearnerGradingPerCourseAPI.fromJson(value);
      case 'PerlearnerGradingPerCourseAPIData':
        return PerlearnerGradingPerCourseAPIData.fromJson(value);
      case 'PerlearnerUserList':
        return PerlearnerUserList.fromJson(value);
      case 'PerlearnerUserListData':
        return PerlearnerUserListData.fromJson(value);
      case 'PinnedMessageCreate':
        return PinnedMessageCreate.fromJson(value);
      case 'PlatformList':
        return PlatformList.fromJson(value);
      case 'PlatformListStatusEnum':
        return PlatformListStatusEnumTypeTransformer().decode(value);
      case 'PlatformUpdatePostRequest':
        return PlatformUpdatePostRequest.fromJson(value);
      case 'PointsPercentile':
        return PointsPercentile.fromJson(value);
      case 'PredictiveAnalyticsRequest':
        return PredictiveAnalyticsRequest.fromJson(value);
      case 'PredictiveAnalyticsResponse':
        return PredictiveAnalyticsResponse.fromJson(value);
      case 'Product':
        return Product.fromJson(value);
      case 'ProductTable':
        return ProductTable.fromJson(value);
      case 'Prompt':
        return Prompt.fromJson(value);
      case 'PromptCategory':
        return PromptCategory.fromJson(value);
      case 'ProviderEnum':
        return ProviderEnumTypeTransformer().decode(value);
      case 'QueryEndpoint':
        return QueryEndpoint.fromJson(value);
      case 'RatingEnum':
        return RatingEnumTypeTransformer().decode(value);
      case 'RecommendCourseResponse':
        return RecommendCourseResponse.fromJson(value);
      case 'RecommendationSearchAPI':
        return RecommendationSearchAPI.fromJson(value);
      case 'RelatedText':
        return RelatedText.fromJson(value);
      case 'ReportCreate':
        return ReportCreate.fromJson(value);
      case 'ReportData':
        return ReportData.fromJson(value);
      case 'ReportList':
        return ReportList.fromJson(value);
      case 'ReportRequest':
        return ReportRequest.fromJson(value);
      case 'ReportStatus':
        return ReportStatus.fromJson(value);
      case 'ReportedRole':
        return ReportedRole.fromJson(value);
      case 'ReportedSkill':
        return ReportedSkill.fromJson(value);
      case 'RequestDataVariable':
        return RequestDataVariable.fromJson(value);
      case 'ResourcePoint':
        return ResourcePoint.fromJson(value);
      case 'ResponseDataVariable':
        return ResponseDataVariable.fromJson(value);
      case 'RetreiverTrainViewRequest':
        return RetreiverTrainViewRequest.fromJson(value);
      case 'RetreiverTrainViewResponse':
        return RetreiverTrainViewResponse.fromJson(value);
      case 'RetrieveTask':
        return RetrieveTask.fromJson(value);
      case 'RetrieverDocumentEmbedding':
        return RetrieverDocumentEmbedding.fromJson(value);
      case 'RetrieverDocumentEmbeddingRequest':
        return RetrieverDocumentEmbeddingRequest.fromJson(value);
      case 'RetrieverRequestSearch':
        return RetrieverRequestSearch.fromJson(value);
      case 'RetrieverRequestSearchDocument':
        return RetrieverRequestSearchDocument.fromJson(value);
      case 'RetrieverResponseSearch':
        return RetrieverResponseSearch.fromJson(value);
      case 'ReuestDataVariableList':
        return ReuestDataVariableList.fromJson(value);
      case 'RevenueByProduct':
        return RevenueByProduct.fromJson(value);
      case 'Role':
        return Role.fromJson(value);
      case 'SampleQuestionsDocument':
        return SampleQuestionsDocument.fromJson(value);
      case 'SampleQuestionsDocumentStatusEnum':
        return SampleQuestionsDocumentStatusEnumTypeTransformer().decode(value);
      case 'SessionDetail':
        return SessionDetail.fromJson(value);
      case 'Skill':
        return Skill.fromJson(value);
      case 'SkillDetail':
        return SkillDetail.fromJson(value);
      case 'SkillInfo':
        return SkillInfo.fromJson(value);
      case 'SkillThreshold':
        return SkillThreshold.fromJson(value);
      case 'SlackWebhook':
        return SlackWebhook.fromJson(value);
      case 'StateEnum':
        return StateEnumTypeTransformer().decode(value);
      case 'StudentAnswer':
        return StudentAnswer.fromJson(value);
      case 'SubTimeChild':
        return SubTimeChild.fromJson(value);
      case 'SubTopic':
        return SubTopic.fromJson(value);
      case 'SuggestedPrompt':
        return SuggestedPrompt.fromJson(value);
      case 'SuggestedPromptIndex':
        return SuggestedPromptIndex.fromJson(value);
      case 'SuggestedPrompts':
        return SuggestedPrompts.fromJson(value);
      case 'Summary':
        return Summary.fromJson(value);
      case 'TaskView':
        return TaskView.fromJson(value);
      case 'ThemeEnum':
        return ThemeEnumTypeTransformer().decode(value);
      case 'TimeChildData':
        return TimeChildData.fromJson(value);
      case 'TimeDetail':
        return TimeDetail.fromJson(value);
      case 'TimeDetailChild':
        return TimeDetailChild.fromJson(value);
      case 'TimeDetailData':
        return TimeDetailData.fromJson(value);
      case 'TimeSpentByUsersInCourse':
        return TimeSpentByUsersInCourse.fromJson(value);
      case 'TimeSpentByUsersInCourseData':
        return TimeSpentByUsersInCourseData.fromJson(value);
      case 'TimeSpentPerCourse':
        return TimeSpentPerCourse.fromJson(value);
      case 'TimeSpentPerCourseData':
        return TimeSpentPerCourseData.fromJson(value);
      case 'Topic':
        return Topic.fromJson(value);
      case 'TrainChatSessionDocumentView':
        return TrainChatSessionDocumentView.fromJson(value);
      case 'TrainDocumentViewRequest':
        return TrainDocumentViewRequest.fromJson(value);
      case 'TrainDocumentViewResponse':
        return TrainDocumentViewResponse.fromJson(value);
      case 'Usage':
        return Usage.fromJson(value);
      case 'UserChatFeedback':
        return UserChatFeedback.fromJson(value);
      case 'UserPlatformManagementListViewGetResponse':
        return UserPlatformManagementListViewGetResponse.fromJson(value);
      case 'UserPlatformViewPostRequest':
        return UserPlatformViewPostRequest.fromJson(value);
      case 'UserProxyBulkRequest':
        return UserProxyBulkRequest.fromJson(value);
      case 'UserProxyGetResponse':
        return UserProxyGetResponse.fromJson(value);
      case 'UserProxyPostRequest':
        return UserProxyPostRequest.fromJson(value);
      case 'UserProxyPostResponse':
        return UserProxyPostResponse.fromJson(value);
      case 'UserSearchViewGetResponse':
        return UserSearchViewGetResponse.fromJson(value);
      case 'UserSkill':
        return UserSkill.fromJson(value);
      case 'UserSkillPointsPercentile':
        return UserSkillPointsPercentile.fromJson(value);
      case 'Value':
        return Value.fromJson(value);
      case 'ValueData':
        return ValueData.fromJson(value);
      case 'VideoBlock':
        return VideoBlock.fromJson(value);
      case 'VideoEngagementPerCourse':
        return VideoEngagementPerCourse.fromJson(value);
      case 'VideoEngagementPerCourseData':
        return VideoEngagementPerCourseData.fromJson(value);
      case 'VideosCount':
        return VideosCount.fromJson(value);
      case 'VideosCountData':
        return VideosCountData.fromJson(value);
      case 'VideosInCourseSummary':
        return VideosInCourseSummary.fromJson(value);
      case 'VideosInCourseSummaryData':
        return VideosInCourseSummaryData.fromJson(value);
      case 'VideosSpecificCourse':
        return VideosSpecificCourse.fromJson(value);
      case 'VideosSpecificCourseData':
        return VideosSpecificCourseData.fromJson(value);
      case 'VideosWatchedSubSection':
        return VideosWatchedSubSection.fromJson(value);
      case 'WatchedVideosPerCourse':
        return WatchedVideosPerCourse.fromJson(value);
      case 'WatchedVideosPerCourseData':
        return WatchedVideosPerCourseData.fromJson(value);
      case 'WatchedVideosPerUser':
        return WatchedVideosPerUser.fromJson(value);
      case 'WatchedVideosPerUserData':
        return WatchedVideosPerUserData.fromJson(value);
      case 'WebSocketStopGenerationView':
        return WebSocketStopGenerationView.fromJson(value);
      case 'WebexWebhook':
        return WebexWebhook.fromJson(value);
      case 'WhatAppWebHook':
        return WhatAppWebHook.fromJson(value);
      default:
        dynamic match;
        if (value is List && (match = _regList.firstMatch(targetType)?.group(1)) != null) {
          return value
            .map<dynamic>((dynamic v) => fromJson(v, match, growable: growable,))
            .toList(growable: growable);
        }
        if (value is Set && (match = _regSet.firstMatch(targetType)?.group(1)) != null) {
          return value
            .map<dynamic>((dynamic v) => fromJson(v, match, growable: growable,))
            .toSet();
        }
        if (value is Map && (match = _regMap.firstMatch(targetType)?.group(1)) != null) {
          return Map<String, dynamic>.fromIterables(
            value.keys.cast<String>(),
            value.values.map<dynamic>((dynamic v) => fromJson(v, match, growable: growable,)),
          );
        }
    }
  } on Exception catch (error, trace) {
    throw ApiException.withInner(HttpStatus.internalServerError, 'Exception during deserialization.', error, trace,);
  }
  throw ApiException(HttpStatus.internalServerError, 'Could not find a suitable class for deserialization',);
}