fromJson static method
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 'ACourse':
return ACourse.fromJson(value);
case 'ACourseSubject':
return ACourseSubject.fromJson(value);
case 'ACourseSubscription':
return ACourseSubscription.fromJson(value);
case 'AcceptInvitation':
return AcceptInvitation.fromJson(value);
case 'AnswerTypeEnum':
return AnswerTypeEnumTypeTransformer().decode(value);
case 'Availability':
return Availability.fromJson(value);
case 'AvailabilitySlot':
return AvailabilitySlot.fromJson(value);
case 'BaseResponseDTO':
return BaseResponseDTO.fromJson(value);
case 'Booking':
return Booking.fromJson(value);
case 'BookingCancel':
return BookingCancel.fromJson(value);
case 'BookingReschedule':
return BookingReschedule.fromJson(value);
case 'BookingTime':
return BookingTime.fromJson(value);
case 'Card':
return Card.fromJson(value);
case 'CardCreate':
return CardCreate.fromJson(value);
case 'CategoryEnum':
return CategoryEnumTypeTransformer().decode(value);
case 'Chat':
return Chat.fromJson(value);
case 'ChatTutor':
return ChatTutor.fromJson(value);
case 'ChatUser':
return ChatUser.fromJson(value);
case 'CheckSMSVerificationCode':
return CheckSMSVerificationCode.fromJson(value);
case 'ClearPhoneCache':
return ClearPhoneCache.fromJson(value);
case 'ConfirmedStatusEnum':
return ConfirmedStatusEnumTypeTransformer().decode(value);
case 'ContactUs':
return ContactUs.fromJson(value);
case 'Country':
return Country.fromJson(value);
case 'Coupon':
return Coupon.fromJson(value);
case 'CouponCodeCheck':
return CouponCodeCheck.fromJson(value);
case 'CourseOption':
return CourseOption.fromJson(value);
case 'CreateAccount':
return CreateAccount.fromJson(value);
case 'CreateSMSAccountRequestDTO':
return CreateSMSAccountRequestDTO.fromJson(value);
case 'CreateSMSAccountResponseDTO':
return CreateSMSAccountResponseDTO.fromJson(value);
case 'CreateSMSCustomerRequestDTO':
return CreateSMSCustomerRequestDTO.fromJson(value);
case 'CreateSMSCustomerResponseDTO':
return CreateSMSCustomerResponseDTO.fromJson(value);
case 'Customer':
return Customer.fromJson(value);
case 'CustomerEnquiry':
return CustomerEnquiry.fromJson(value);
case 'CustomerFeedback':
return CustomerFeedback.fromJson(value);
case 'CustomerFeedbackStatusEnum':
return CustomerFeedbackStatusEnumTypeTransformer().decode(value);
case 'CustomerInterest':
return CustomerInterest.fromJson(value);
case 'CustomerJobPostCreate':
return CustomerJobPostCreate.fromJson(value);
case 'CustomerProfile':
return CustomerProfile.fromJson(value);
case 'CustomerSettings':
return CustomerSettings.fromJson(value);
case 'Day':
return Day.fromJson(value);
case 'DayEnum':
return DayEnumTypeTransformer().decode(value);
case 'DiscountTypeEnum':
return DiscountTypeEnumTypeTransformer().decode(value);
case 'DownloadRequest':
return DownloadRequest.fromJson(value);
case 'EmailConfirmation':
return EmailConfirmation.fromJson(value);
case 'Enquiry':
return Enquiry.fromJson(value);
case 'FcmDeviceToken':
return FcmDeviceToken.fromJson(value);
case 'FeedbackBooking':
return FeedbackBooking.fromJson(value);
case 'FeedbackSerialCourse':
return FeedbackSerialCourse.fromJson(value);
case 'FindTutorRequest':
return FindTutorRequest.fromJson(value);
case 'FullChat':
return FullChat.fromJson(value);
case 'FullUser':
return FullUser.fromJson(value);
case 'GroupSubjects':
return GroupSubjects.fromJson(value);
case 'IndexTutorCard':
return IndexTutorCard.fromJson(value);
case 'IndexTutors':
return IndexTutors.fromJson(value);
case 'Interest':
return Interest.fromJson(value);
case 'Invitation':
return Invitation.fromJson(value);
case 'InvitationDate':
return InvitationDate.fromJson(value);
case 'InvitationDateCreate':
return InvitationDateCreate.fromJson(value);
case 'InvitationInstant':
return InvitationInstant.fromJson(value);
case 'JobApplication':
return JobApplication.fromJson(value);
case 'JobApplicationCreate':
return JobApplicationCreate.fromJson(value);
case 'JobApplicationTutor':
return JobApplicationTutor.fromJson(value);
case 'JobApplicationTutorMinimal':
return JobApplicationTutorMinimal.fromJson(value);
case 'JobPostAvailability':
return JobPostAvailability.fromJson(value);
case 'JobPostDetail':
return JobPostDetail.fromJson(value);
case 'JobPostList':
return JobPostList.fromJson(value);
case 'JobPostShort':
return JobPostShort.fromJson(value);
case 'JobPostStudentAvailability':
return JobPostStudentAvailability.fromJson(value);
case 'JobPostView':
return JobPostView.fromJson(value);
case 'JobTypeEnum':
return JobTypeEnumTypeTransformer().decode(value);
case 'LastMessage':
return LastMessage.fromJson(value);
case 'LessonPrice':
return LessonPrice.fromJson(value);
case 'Level':
return Level.fromJson(value);
case 'LiveSessionTypeEnum':
return LiveSessionTypeEnumTypeTransformer().decode(value);
case 'LoginNewRequestDTO':
return LoginNewRequestDTO.fromJson(value);
case 'LoginRequestDTO':
return LoginRequestDTO.fromJson(value);
case 'LoginResponseDTO':
return LoginResponseDTO.fromJson(value);
case 'Message':
return Message.fromJson(value);
case 'MessageTutorEnquiry':
return MessageTutorEnquiry.fromJson(value);
case 'NotificationActionEnum':
return NotificationActionEnumTypeTransformer().decode(value);
case 'NotificationType':
return NotificationType.fromJson(value);
case 'OnboardingFlowCreateCustomer':
return OnboardingFlowCreateCustomer.fromJson(value);
case 'PaginatedCustomerFeedbackList':
return PaginatedCustomerFeedbackList.fromJson(value);
case 'PaginatedJobApplicationList':
return PaginatedJobApplicationList.fromJson(value);
case 'PaginatedPushNotificationList':
return PaginatedPushNotificationList.fromJson(value);
case 'PaginatedTutorCardList':
return PaginatedTutorCardList.fromJson(value);
case 'PaginatedTutorJobPostViewList':
return PaginatedTutorJobPostViewList.fromJson(value);
case 'PaginatedTutorReferenceListList':
return PaginatedTutorReferenceListList.fromJson(value);
case 'PaginatedUserNotificationList':
return PaginatedUserNotificationList.fromJson(value);
case 'PasswordRestRequest':
return PasswordRestRequest.fromJson(value);
case 'PatchedBooking':
return PatchedBooking.fromJson(value);
case 'PatchedBookingReschedule':
return PatchedBookingReschedule.fromJson(value);
case 'PatchedCustomerFeedback':
return PatchedCustomerFeedback.fromJson(value);
case 'PatchedCustomerSettings':
return PatchedCustomerSettings.fromJson(value);
case 'PatchedInvitation':
return PatchedInvitation.fromJson(value);
case 'PatchedPersonalityTestLevel':
return PatchedPersonalityTestLevel.fromJson(value);
case 'PatchedTutorFeedback':
return PatchedTutorFeedback.fromJson(value);
case 'PatchedTutorInvitation':
return PatchedTutorInvitation.fromJson(value);
case 'PatchedTutorProfileOnboarding':
return PatchedTutorProfileOnboarding.fromJson(value);
case 'PatchedTutorReference':
return PatchedTutorReference.fromJson(value);
case 'PatchedTutorReview':
return PatchedTutorReview.fromJson(value);
case 'PatchedTutorSettings':
return PatchedTutorSettings.fromJson(value);
case 'PatchedTutorSupplyProfile':
return PatchedTutorSupplyProfile.fromJson(value);
case 'PatchedUserProfile':
return PatchedUserProfile.fromJson(value);
case 'PatchedUserProfileUpdateRequestDTO':
return PatchedUserProfileUpdateRequestDTO.fromJson(value);
case 'PatchedtutorBooking':
return PatchedtutorBooking.fromJson(value);
case 'PatchedtutorSerialCourse':
return PatchedtutorSerialCourse.fromJson(value);
case 'PersonalityEnquiry':
return PersonalityEnquiry.fromJson(value);
case 'PersonalityTestLevel':
return PersonalityTestLevel.fromJson(value);
case 'PersonalityTestSubject':
return PersonalityTestSubject.fromJson(value);
case 'PhoneConfirmation':
return PhoneConfirmation.fromJson(value);
case 'PhoneConfirmationResend':
return PhoneConfirmationResend.fromJson(value);
case 'ProfileAttachment':
return ProfileAttachment.fromJson(value);
case 'PushNotification':
return PushNotification.fromJson(value);
case 'Qualification':
return Qualification.fromJson(value);
case 'Question':
return Question.fromJson(value);
case 'QuestionOption':
return QuestionOption.fromJson(value);
case 'RecaptchaToken':
return RecaptchaToken.fromJson(value);
case 'RecordAction':
return RecordAction.fromJson(value);
case 'RequestTutor':
return RequestTutor.fromJson(value);
case 'School':
return School.fromJson(value);
case 'SchoolsupplyRequestTutor':
return SchoolsupplyRequestTutor.fromJson(value);
case 'SendEmailVerificationCode':
return SendEmailVerificationCode.fromJson(value);
case 'SendPersonalityEnquiryToTutor':
return SendPersonalityEnquiryToTutor.fromJson(value);
case 'SendSMSVerificationCode':
return SendSMSVerificationCode.fromJson(value);
case 'SerialCourseCustomer':
return SerialCourseCustomer.fromJson(value);
case 'Session':
return Session.fromJson(value);
case 'SetupIntent':
return SetupIntent.fromJson(value);
case 'SimpleSubjectLevel':
return SimpleSubjectLevel.fromJson(value);
case 'SocialAuthMethodEnum':
return SocialAuthMethodEnumTypeTransformer().decode(value);
case 'SocialLogin':
return SocialLogin.fromJson(value);
case 'SocialToken':
return SocialToken.fromJson(value);
case 'Status384Enum':
return Status384EnumTypeTransformer().decode(value);
case 'StatusC27Enum':
return StatusC27EnumTypeTransformer().decode(value);
case 'StripeAuthorize':
return StripeAuthorize.fromJson(value);
case 'StudentPersonality':
return StudentPersonality.fromJson(value);
case 'Subject':
return Subject.fromJson(value);
case 'SubjectLevel':
return SubjectLevel.fromJson(value);
case 'SubjectLevels':
return SubjectLevels.fromJson(value);
case 'SubscribedNotification':
return SubscribedNotification.fromJson(value);
case 'SubscriptionStatusEnum':
return SubscriptionStatusEnumTypeTransformer().decode(value);
case 'SupplyTeachingExperience':
return SupplyTeachingExperience.fromJson(value);
case 'SupplyTeachingLevel':
return SupplyTeachingLevel.fromJson(value);
case 'TeachingExperience':
return TeachingExperience.fromJson(value);
case 'TeachingFrequency':
return TeachingFrequency.fromJson(value);
case 'TeachingLevel':
return TeachingLevel.fromJson(value);
case 'TestAnswer':
return TestAnswer.fromJson(value);
case 'TrialCallInvitation':
return TrialCallInvitation.fromJson(value);
case 'Tutor':
return Tutor.fromJson(value);
case 'TutorAvailability':
return TutorAvailability.fromJson(value);
case 'TutorBooking':
return TutorBooking.fromJson(value);
case 'TutorCard':
return TutorCard.fromJson(value);
case 'TutorCardSubject':
return TutorCardSubject.fromJson(value);
case 'TutorCreateAccount':
return TutorCreateAccount.fromJson(value);
case 'TutorCruncherSignup':
return TutorCruncherSignup.fromJson(value);
case 'TutorEnquiry':
return TutorEnquiry.fromJson(value);
case 'TutorFeedback':
return TutorFeedback.fromJson(value);
case 'TutorInvitation':
return TutorInvitation.fromJson(value);
case 'TutorInvitationCreate':
return TutorInvitationCreate.fromJson(value);
case 'TutorInvitationResponse':
return TutorInvitationResponse.fromJson(value);
case 'TutorJobPostView':
return TutorJobPostView.fromJson(value);
case 'TutorLogin':
return TutorLogin.fromJson(value);
case 'TutorPersonalityEnquiry':
return TutorPersonalityEnquiry.fromJson(value);
case 'TutorProfile':
return TutorProfile.fromJson(value);
case 'TutorProfileDisplay':
return TutorProfileDisplay.fromJson(value);
case 'TutorProfileFiles':
return TutorProfileFiles.fromJson(value);
case 'TutorProfileMinimal':
return TutorProfileMinimal.fromJson(value);
case 'TutorProfileOnboarding':
return TutorProfileOnboarding.fromJson(value);
case 'TutorProfileOnboardingDTO':
return TutorProfileOnboardingDTO.fromJson(value);
case 'TutorQualification':
return TutorQualification.fromJson(value);
case 'TutorReference':
return TutorReference.fromJson(value);
case 'TutorReferenceCreate':
return TutorReferenceCreate.fromJson(value);
case 'TutorReferenceList':
return TutorReferenceList.fromJson(value);
case 'TutorReview':
return TutorReview.fromJson(value);
case 'TutorSMSCreateAccount':
return TutorSMSCreateAccount.fromJson(value);
case 'TutorSerialCourse':
return TutorSerialCourse.fromJson(value);
case 'TutorSettings':
return TutorSettings.fromJson(value);
case 'TutorSubject':
return TutorSubject.fromJson(value);
case 'TutorSupplyProfile':
return TutorSupplyProfile.fromJson(value);
case 'TutorTimeOff':
return TutorTimeOff.fromJson(value);
case 'TypeAf8Enum':
return TypeAf8EnumTypeTransformer().decode(value);
case 'User':
return User.fromJson(value);
case 'UserDataDTO':
return UserDataDTO.fromJson(value);
case 'UserNotification':
return UserNotification.fromJson(value);
case 'UserNotificationTypeEnum':
return UserNotificationTypeEnumTypeTransformer().decode(value);
case 'UserProfile':
return UserProfile.fromJson(value);
case 'UserProfileResponseDTO':
return UserProfileResponseDTO.fromJson(value);
case 'UserProfileUpdateRequestDTO':
return UserProfileUpdateRequestDTO.fromJson(value);
case 'UserRetrival':
return UserRetrival.fromJson(value);
case 'UserUpdate':
return UserUpdate.fromJson(value);
case 'ZoomMeeting':
return ZoomMeeting.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',);
}