loadAndDecrypt method

Future<LoaderResult> loadAndDecrypt({
  1. required String url,
  2. required CryptoType type,
  3. ResponseType responseType = ResponseType.bodyBytes,
  4. String group = 'no_group',
})

Implementation

Future<LoaderResult> loadAndDecrypt({
  required String url,
  required CryptoType type,
  ResponseType responseType = ResponseType.bodyBytes,
  String group = 'no_group',
}) async {
  final result = await load(
    url: url,
    group: group,
    responseType: responseType,
  );
  switch (result) {
    case LoadResult.cached:
    case LoadResult.load:
      final result = await getData(
        url: url,
        type: type,
      );
      if (result == null) {
        return const LoaderEmpty();
      }

      return LoaderSuccess(
        data: result.data,
        filename: result.filename,
      );
    case LoadResult.failed:
      return const LoaderFailed();
    case LoadResult.connectionError:
      return const LoaderConnectionError();
    case LoadResult.urlError:
      return const LoaderUrlError();
    case LoadResult.formatError:
      return const LoaderFormatError();
  }
}