import 'dart:developer'; import 'package:hub/shared/constants/index.dart'; import 'package:hub/shared/helpers/database/database_helper.dart'; import 'package:hub/shared/helpers/storage/base_storage.dart'; import 'package:sqflite/sqflite.dart'; class KeychainHelper implements BaseStorage { KeychainHelper._(); static final KeychainHelper instance = KeychainHelper._(); bool _isInitialized = false; @override Future init() async { if (_isInitialized) return; await DatabaseStorage.instance.init(); _isInitialized = true; } @override Future get(String key) async { var response = await DatabaseStorage.database.query(tableKeychain, where: 'key = ?', whereArgs: [key]); if (response.isEmpty) { return null; } return response.first['value'].toString(); } @override Future set(String key, T value) async { var date = DateTime.now().toIso8601String(); await DatabaseStorage.database.insert( tableKeychain, { 'key': key, 'value': value.toString(), 'type': 'local', 'updateAt': date, 'resolvedAt': date, 'createdAt': date, }, conflictAlgorithm: ConflictAlgorithm.replace); } @override Future delete(String key) async { await DatabaseStorage.database.delete(tableKeychain, where: 'key = ?', whereArgs: [key]); } @override Future clearAll() async { await DatabaseStorage.database.delete(tableKeychain); } }