storeImage method

Future<String?> storeImage({
  1. required int id,
  2. required String type,
  3. required String content,
  4. String mediaType = 'image/png',
})

Store an image to disk.

Implementation

Future<String?> storeImage({
  required int id,
  required String type,
  required String content,
  String mediaType = 'image/png',
}) async {
  if (type != 'image') return null;

  try {
    final dir = _getSessionImageStoreDir();
    await Directory(dir).create(recursive: true);
    final imagePath = _getImagePath(id, mediaType);
    await File(imagePath).writeAsBytes(base64Decode(content));
    _evictOldestIfAtCap();
    _storedImagePaths[id] = imagePath;
    _logForDebugging('Stored image $id to $imagePath');
    return imagePath;
  } catch (error) {
    _logForDebugging('Failed to store image: $error');
    return null;
  }
}