saveFromApiResponse static method

Future<void> saveFromApiResponse({
  1. required dynamic responseData,
  2. required String fileName,
})

Implementation

static Future<void> saveFromApiResponse({
  required dynamic responseData,
  required String fileName,
}) async {
  try {
    Uint8List bytes;

    if (responseData is Uint8List) {
      // Already raw bytes (Dio responseType: ResponseType.bytes)
      bytes = responseData;
    } else if (responseData is List<int>) {
      bytes = Uint8List.fromList(responseData);
    } else if (responseData is String) {
      // Fallback: treat as base64 if it's a string
      bytes = base64Decode(responseData);
    } else {
      throw Exception('Unsupported response data type: ${responseData.runtimeType}');
    }
    await FileUtils.saveBytes(bytes: bytes, fileName: fileName);
  } catch (e) {
    rethrow;
  }
}