iterateJsonFile method
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;
}