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 'AchatEnLigneModel':
        return AchatEnLigneModel.fromJson(value);
      case 'AddAchatEnligneResponseV2':
        return AddAchatEnligneResponseV2.fromJson(value);
      case 'AnnulationAchatDto':
        return AnnulationAchatDto.fromJson(value);
      case 'AnnulationDto':
        return AnnulationDto.fromJson(value);
      case 'AnnulationPartenaireToWalletResponseV2':
        return AnnulationPartenaireToWalletResponseV2.fromJson(value);
      case 'AnnulePartenaireToWalletModel':
        return AnnulePartenaireToWalletModel.fromJson(value);
      case 'ApisResponseV2':
        return ApisResponseV2.fromJson(value);
      case 'ApisResponseV2AddAchatEnligneResponseV2':
        return ApisResponseV2AddAchatEnligneResponseV2.fromJson(value);
      case 'ApisResponseV2AnnulationPartenaireToWalletResponseV2':
        return ApisResponseV2AnnulationPartenaireToWalletResponseV2.fromJson(value);
      case 'ApisResponseV2CheckAchatStatusResponseV2':
        return ApisResponseV2CheckAchatStatusResponseV2.fromJson(value);
      case 'ApisResponseV2CheckStatusResponseV2':
        return ApisResponseV2CheckStatusResponseV2.fromJson(value);
      case 'ApisResponseV2Double':
        return ApisResponseV2Double.fromJson(value);
      case 'ApisResponseV2EnvoiInterPartenaireResponseV2':
        return ApisResponseV2EnvoiInterPartenaireResponseV2.fromJson(value);
      case 'ApisResponseV2FraisPreviewResponseV2':
        return ApisResponseV2FraisPreviewResponseV2.fromJson(value);
      case 'ApisResponseV2GetPartenaireToWalletResponseV2':
        return ApisResponseV2GetPartenaireToWalletResponseV2.fromJson(value);
      case 'ApisResponseV2IndicatifsResponseV2':
        return ApisResponseV2IndicatifsResponseV2.fromJson(value);
      case 'ApisResponseV2ListVilleResponse':
        return ApisResponseV2ListVilleResponse.fromJson(value);
      case 'ApisResponseV2ModelEditEnvoieRequest':
        return ApisResponseV2ModelEditEnvoieRequest.fromJson(value);
      case 'ApisResponseV2PartenaireToWalletResponseV2':
        return ApisResponseV2PartenaireToWalletResponseV2.fromJson(value);
      case 'ApisResponseV2String':
        return ApisResponseV2String.fromJson(value);
      case 'ApisResponseV2TransactionResponseV2':
        return ApisResponseV2TransactionResponseV2.fromJson(value);
      case 'ApisResponseV2Void':
        return ApisResponseV2Void.fromJson(value);
      case 'CalculeFraisOperationRequest':
        return CalculeFraisOperationRequest.fromJson(value);
      case 'CheckAchatStatusModel':
        return CheckAchatStatusModel.fromJson(value);
      case 'CheckAchatStatusResponseV2':
        return CheckAchatStatusResponseV2.fromJson(value);
      case 'CheckStatusResponseV2':
        return CheckStatusResponseV2.fromJson(value);
      case 'CheckTransactionRequest':
        return CheckTransactionRequest.fromJson(value);
      case 'EnvoiInterPartenaireFraisRequest':
        return EnvoiInterPartenaireFraisRequest.fromJson(value);
      case 'EnvoiInterPartenaireRequest':
        return EnvoiInterPartenaireRequest.fromJson(value);
      case 'EnvoiInterPartenaireResponseV2':
        return EnvoiInterPartenaireResponseV2.fromJson(value);
      case 'EnvoiToEditDto':
        return EnvoiToEditDto.fromJson(value);
      case 'FraisPreviewResponseV2':
        return FraisPreviewResponseV2.fromJson(value);
      case 'GetPartenaireToWalletModel':
        return GetPartenaireToWalletModel.fromJson(value);
      case 'GetPartenaireToWalletResponseV2':
        return GetPartenaireToWalletResponseV2.fromJson(value);
      case 'IndicatifResponse':
        return IndicatifResponse.fromJson(value);
      case 'IndicatifsResponseV2':
        return IndicatifsResponseV2.fromJson(value);
      case 'ModelEditEnvoieRequest':
        return ModelEditEnvoieRequest.fromJson(value);
      case 'PartenaireToCashDtoV2':
        return PartenaireToCashDtoV2.fromJson(value);
      case 'PartenaireToWalletFraisRequest':
        return PartenaireToWalletFraisRequest.fromJson(value);
      case 'PartenaireToWalletModel':
        return PartenaireToWalletModel.fromJson(value);
      case 'PartenaireToWalletResponseV2':
        return PartenaireToWalletResponseV2.fromJson(value);
      case 'TransactionResponseV2':
        return TransactionResponseV2.fromJson(value);
      case 'UpdateEnvoiDto':
        return UpdateEnvoiDto.fromJson(value);
      case 'VerificationCompteDtoV2':
        return VerificationCompteDtoV2.fromJson(value);
      case 'VilleResponse':
        return VilleResponse.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',);
}