fetchDataRecords method

Future<List<IOSWKWebsiteDataRecord>> fetchDataRecords({
  1. required Set<IOSWKWebsiteDataType> dataTypes,
})

Fetches data records containing the given website data types.

dataTypes represents the website data types to fetch records for.

Implementation

Future<List<IOSWKWebsiteDataRecord>> fetchDataRecords({
  required Set<IOSWKWebsiteDataType> dataTypes,
}) async {
  List<IOSWKWebsiteDataRecord> recordList = [];
  Set<WebsiteDataType> dataTypesList = Set();
  for (var dataType in dataTypes) {
    dataTypesList.add(
      WebsiteDataType.fromNativeValue(dataType.toNativeValue())!,
    );
  }

  List<WebsiteDataRecord> records = await WebStorageManager.instance()
      .fetchDataRecords(dataTypes: dataTypesList);

  for (var record in records) {
    Set<WebsiteDataType> dataTypesString = record.dataTypes ?? Set();
    Set<IOSWKWebsiteDataType> dataTypes = Set();
    for (var dataTypeValue in dataTypesString) {
      var dataType = IOSWKWebsiteDataType.fromNativeValue(
        dataTypeValue.toNativeValue(),
      );
      if (dataType != null) {
        dataTypes.add(dataType);
      }
    }
    recordList.add(
      IOSWKWebsiteDataRecord(
        displayName: record.displayName,
        dataTypes: dataTypes,
      ),
    );
  }
  return recordList;
}