iterateJsonFile method

Future<bool> iterateJsonFile(
  1. List<APIDetails> apiList
)

Implementation

Future<bool> iterateJsonFile(List<APIDetails> apiList) async {
  if (distDir == null) return false;
  var error = StringBuffer();
  var indexFile = '';
  for (int i = 0; i < apiList.length; i++) {
    var f = apiList[i];
    print("URL--> ${f.url}");
    var dartPath =
        f.modelFilename.toString().replaceAll('.dart', '').toLowerCase() +
            '.dart';

    var dartInputPath = f.modelFilename
            .toString()
            .replaceAll('.dart', '')
            .toLowerCase()
            .replaceAll("response", "") +
        '_request.dart';

    Map<String, dynamic>? jsonMap = await networkCall(f);

    var jsonModel =
        JsonModel.fromMap(f.modelFilename?.toLowerCase(), jsonMap);
    var fromConstKeyMap = JsonModel.fromConstKeyMap(jsonMap);
    var fromToJsonKeyMap = JsonModel.fromToJsonKeyMap(jsonMap);
    var fromJsonKeyMap = JsonModel.fromJsonKeyMap(jsonMap);

    if (!generateFileFromJson(distDir! + "/" + dartPath, jsonModel, dartPath,
        fromConstKeyMap, fromToJsonKeyMap, fromJsonKeyMap)) {
      error.write('cant write $dartPath');
    }

    if (f.input != null) {
      var name = f.modelFilename
          ?.toString()
          .toLowerCase()
          .replaceAll("response", "_request");
      var jsonInputModel = JsonModel.fromMap(name, f.input?.mInputValue);
      var fromInputConstKeyMap =
          JsonModel.fromConstKeyMap(f.input?.mInputValue);
      var fromInputToJsonKeyMap =
          JsonModel.fromToJsonKeyMap(f.input?.mInputValue);
      var fromInputJsonKeyMap =
          JsonModel.fromJsonKeyMap(f.input?.mInputValue);

      if (fromInputConstKeyMap != null &&
          fromInputToJsonKeyMap != null &&
          fromInputJsonKeyMap != null) {
        // warningIfImportNotExists(jsonModel, f);
        if (!generateFileFromJson(
            distDir! + "/" + dartInputPath,
            jsonInputModel,
            dartInputPath,
            fromInputConstKeyMap,
            fromInputToJsonKeyMap,
            fromInputJsonKeyMap)) {
          error.write('cant write $dartInputPath');
        }
      }
    }

    var relative = dartPath
        .replaceFirst(distDir! + path.separator, '')
        .replaceAll(path.separator, '/');
    print('generated: $relative');
    indexFile += "export '$relative';\n";

    if (i == apiList.length - 1) {
      File(path.join(distDir!, 'index.dart')).writeAsStringSync(indexFile);
      return indexFile.isNotEmpty;
    }
  }
  return false;
}