getMultiFileData method

  1. @override
Future<List<FileModel>?> getMultiFileData({
  1. String search = "",
  2. int limit = 99,
  3. int? offset,
  4. String? cursor,
  5. String cursorDirection = "after",
  6. String orderType = "DESC",
  7. String bucketId = "",
})
override

Implementation

@override
Future<List<FileModel>?> getMultiFileData(
    {String search = "",
    int limit = 99,
    int? offset,
    String? cursor,
    String cursorDirection = "after",
    String orderType = "DESC",
    String bucketId = ""}) async {
  List<FileModel> multiFileData = [];

  try {
    await initialize();

    bucketId = bucketId.isEmpty ? myConfig!.serverConfig!.storageConnInfo.bucketId : bucketId;
    final multiTarget = await _storage!.ref().child("$bucketId/$search").listAll();
    for (var target in multiTarget.items) {
      var targetMetaData = await target.getMetadata();
      var targetUrl = await target.getDownloadURL();
      var targetThumbnail = await _storage!
          .ref()
          .child(
              "$bucketId/content/thumbnail/${target.fullPath.substring(target.fullPath.lastIndexOf("/") + 1, targetMetaData.fullPath.lastIndexOf("."))}.jpg")
          .getDownloadURL()
          .onError((error, stackTrace) {
        return targetMetaData.contentType!.contains("image") ? targetUrl : "";
      });
      multiFileData.add(FileModel(
          id: targetMetaData.fullPath,
          name: targetMetaData.name,
          url: targetUrl,
          thumbnailUrl: targetThumbnail,
          size: targetMetaData.size ?? 0,
          contentType: ContentsType.getContentTypes(targetMetaData.contentType!)));
    }
    return multiFileData;
  } catch (error) {
    logger.info("error during Storage.getMultiFileData >> $error");
  }
  return null;
}