getAllRequestsFromDir static method
Get all files and dirs from folderPath and read them to extract requests
Implementation
static Future<List<RequestData>> getAllRequestsFromDir(
String folderPath) async {
List<FileSystemEntity> allFilesInDir =
ControllersPathUtils.listFilesFromPath(folderPath);
List<RequestData> requestData = [];
for (FileSystemEntity fileSystemEntity in allFilesInDir) {
String fileString = fileSystemEntity.toString().replaceAll("File: '", "");
fileString = fileString.replaceAll("'", "");
String fileName = fileString
.split("\\")[fileString.split("\\").length - 1]
.split(".")[0];
File file = File(fileString);
try {
// if fileSystemEntity is file [ not dir ]
if (fileSystemEntity.toString().toLowerCase().startsWith("file")) {
String content = await file.readAsString();
List<String> contentsList = content.split("\n");
// get details request
List<DetailRequestCode> detailsRequests =
extractDataFromMethod(contentsList);
// if file contain summary before method
if (detailsRequests.isNotEmpty) {
requestData.add(RequestData(
key:
(fileString.split("\\")[fileString.split("\\").length - 1]).split(".")[0].replaceAll("_controller", ""),
detailRequestCode: detailsRequests,
));
print(
"✅ File : '$fileName' || Finish read ${detailsRequests.length} request successfully 🎉");
}
// if fileSystemEntity is dir [ not file ]
} else if (fileSystemEntity
.toString()
.toLowerCase()
.startsWith("directory")) {
List<RequestData> outputData =
await getAllRequestsFromDir(fileSystemEntity.path);
requestData.addAll(outputData);
}
} on FileSystemException catch (e) {
print("❌ '$fileName' || ${e.message}");
}
}
return requestData;
}