Skip to content

Commit b958cd0

Browse files
committed
Updated: deleteMany in Hive
1 parent 31ba346 commit b958cd0

File tree

1 file changed

+34
-7
lines changed
  • lib/vaahextendflutter/services/storage/local/services

1 file changed

+34
-7
lines changed

lib/vaahextendflutter/services/storage/local/services/hive.dart

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,7 @@ class LocalStorageWithHive implements LocalStorageService {
424424
String collectionName = 'vaah-flutter-box',
425425
List<String> keys = const [],
426426
}) async {
427+
List<StorageError> errors = [];
427428
if (!_collections.containsKey(collectionName)) {
428429
return StorageResponse(
429430
errors: [
@@ -436,15 +437,41 @@ class LocalStorageWithHive implements LocalStorageService {
436437
);
437438
} else {
438439
try {
440+
final List<String> existingKeys = [];
439441
Box box = await _collections[collectionName]!;
442+
for (int i = 0; i < keys.length; i++) {
443+
if (!box.containsKey(keys[i])) {
444+
errors.add(
445+
StorageError(
446+
message: 'Key "${keys[i]}" does not exist in collection "$collectionName"',
447+
failedKey: keys[i],
448+
stackTrace: StackTrace.current,
449+
),
450+
);
451+
} else {
452+
existingKeys.add(keys[i]);
453+
}
454+
}
440455
if (keys.isNotEmpty) {
441-
await box.deleteAll(keys);
442-
return StorageResponse(
443-
data: keys,
444-
message:
445-
'Deleted multiple entries in collection: $collectionName, associated keys: $keys',
446-
isSuccess: true,
447-
);
456+
if (existingKeys.isEmpty) {
457+
return StorageResponse(errors: errors);
458+
} else if (existingKeys.length == keys.length) {
459+
await box.deleteAll(existingKeys);
460+
return StorageResponse(
461+
data: keys,
462+
message:
463+
'Deleted multiple entries in collection: $collectionName, associated keys: $keys',
464+
isSuccess: true,
465+
);
466+
} else {
467+
await box.deleteAll(existingKeys);
468+
return StorageResponse(
469+
data: existingKeys,
470+
message: 'Deleted ${existingKeys.length}/${keys.length} entries.',
471+
errors: errors,
472+
isPartialSuccess: true,
473+
);
474+
}
448475
} else {
449476
return StorageResponse(
450477
errors: [

0 commit comments

Comments
 (0)