added functionality to sec store interface

This commit is contained in:
julian 2022-12-05 13:59:07 -06:00
parent bce25dbfd3
commit 00f89e7d1b

View file

@ -37,6 +37,15 @@ abstract class SecureStorageInterface {
MacOsOptions? mOptions,
WindowsOptions? wOptions,
});
Future<void> deleteAll({
IOSOptions? iOptions,
AndroidOptions? aOptions,
LinuxOptions? lOptions,
WebOptions? webOptions,
MacOsOptions? mOptions,
WindowsOptions? wOptions,
});
}
class DesktopSecureStore {
@ -54,6 +63,10 @@ class DesktopSecureStore {
);
}
Future<void> close() async {
await isar.close();
}
Future<String?> read({
required String key,
}) async {
@ -192,6 +205,30 @@ class SecureStorageWrapper implements SecureStorageInterface {
);
}
}
@override
Future<void> deleteAll({
IOSOptions? iOptions,
AndroidOptions? aOptions,
LinuxOptions? lOptions,
WebOptions? webOptions,
MacOsOptions? mOptions,
WindowsOptions? wOptions,
}) async {
if (_isDesktop) {
// return (_store as DesktopSecureStore).deleteAll();
throw UnimplementedError();
} else {
return await (_store as FlutterSecureStorage).deleteAll(
iOptions: iOptions,
aOptions: aOptions,
lOptions: lOptions,
webOptions: webOptions,
mOptions: mOptions,
wOptions: wOptions,
);
}
}
}
// Mock class for testing purposes
@ -252,6 +289,20 @@ class FakeSecureStorage implements SecureStorageInterface {
_store.remove(key);
}
@override
Future<void> deleteAll({
IOSOptions? iOptions,
AndroidOptions? aOptions,
LinuxOptions? lOptions,
WebOptions? webOptions,
MacOsOptions? mOptions,
WindowsOptions? wOptions,
}) async {
_interactions++;
_deletes++;
_store.clear();
}
@override
dynamic get store => throw UnimplementedError();
}