getData<T> static method

Future<T?> getData<T>(
  1. String key,
  2. T fromJson(
    1. Map<String, dynamic>
    )
)

Recupera dados de forma segura do banco de dados

Implementation

static Future<T?> getData<T>(
    String key, T Function(Map<String, dynamic>) fromJson) async {
  if (_database == null) await init();
  final List<Map<String, dynamic>> result = await _database!.query(
    _tableName,
    where: "key = ?",
    whereArgs: [key],
  );

  if (result.isNotEmpty) {
    String encryptedValue = result.first["value"];
    String decryptedValue = _decrypt(encryptedValue); // Descriptografa
    return _deserialize<T>(
        decryptedValue, fromJson); // Converte de volta para o objeto
  } else {
    return null;
  }
}