requestsAdapter static method

List<FolderRequestCollectionModel> requestsAdapter(
  1. List<RequestData> allRequestsData
)

Adapter request from some of string to api collection

Implementation

static List<FolderRequestCollectionModel> requestsAdapter(
    List<RequestData> allRequestsData) {
  List<DetailRequest> allRequestsDataAdapter = [];
  List<FolderRequestCollectionModel> folderRequestCollectionModel = [];

  for (RequestData requestData in allRequestsData) {
    List<DetailRequest> allRequestsDataAdapterLocal = [];

    for (DetailRequestCode detailRequest in requestData.detailRequestCode) {
      late RequestModel requestModel;
      late BodyModel bodyModel;
      late UrlModel urlModel;

      List<HeaderModel> headerModel = [];
      AuthModel authModel = AuthModel(authModels: []);

      String paramsRequest = "";

      // adapt header
      headerModel = _headersAdapter(detailRequest);

      // adapt url
      urlModel =
          UrlModel(raw: "{{base_url}}${detailRequest.route}$paramsRequest");

      // adapt auth
      if (detailRequest.access.contains("privet")) {
        authModel.type = "bearer";
        authModel.authModels = [
          AuthData(key: "token", value: "e", type: "string").toMap()
        ];
      }

      // adapt body
      bodyModel = BodyModel(
        mode: detailRequest.requestType,
        body: detailRequest.body,
      );

      // adapt params
      detailRequest.params
          .forEach((key, value) => paramsRequest += "?$key=$value");

      // setup final request
      requestModel = RequestModel(
        method: detailRequest.requestType,
        header: headerModel,
        body: bodyModel,
        url: urlModel,
        auth: authModel,
      );

      DetailRequest detailApiRequest = DetailRequest(
        requestName: detailRequest.desc,
        requestModel: requestModel,
        methodName: detailRequest.methodNameInFile,
      );

      allRequestsDataAdapterLocal.add(detailApiRequest);
    }
    allRequestsDataAdapter.addAll(allRequestsDataAdapterLocal);
    folderRequestCollectionModel.add(FolderRequestCollectionModel(
      folderName: requestData.key,
      detailRequests: allRequestsDataAdapter,
    ));

    allRequestsDataAdapterLocal = [];
    allRequestsDataAdapter = [];
  }

  return folderRequestCollectionModel;
}