getAllRequestsFromDir static method

Future<List<RequestData>> getAllRequestsFromDir(
  1. String folderPath
)

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