29 lines
825 B
Dart
29 lines
825 B
Dart
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
|
|
|
abstract class CredentialsStorage {
|
|
Future<String?> getApiKey(String homeId);
|
|
|
|
Future<void> setApiKey(String homeId, String apiKey);
|
|
|
|
Future<void> deleteApiKey(String homeId);
|
|
}
|
|
|
|
class SecureCredentialsStorage implements CredentialsStorage {
|
|
static const _storage = FlutterSecureStorage();
|
|
|
|
static String _apiKeyStorageKey(String homeId) =>
|
|
'ignis_home_api_key_$homeId';
|
|
|
|
@override
|
|
Future<String?> getApiKey(String homeId) =>
|
|
_storage.read(key: _apiKeyStorageKey(homeId));
|
|
|
|
@override
|
|
Future<void> setApiKey(String homeId, String apiKey) =>
|
|
_storage.write(key: _apiKeyStorageKey(homeId), value: apiKey);
|
|
|
|
@override
|
|
Future<void> deleteApiKey(String homeId) =>
|
|
_storage.delete(key: _apiKeyStorageKey(homeId));
|
|
}
|