read method
Retrieve session data
Implementation
@override
Future<Map<String, dynamic>?> read(String sessionId) async {
final queryBuilder =
_connection.queryBuilder<Map<String, dynamic>>(_tableName);
final result = await queryBuilder
.select(['payload'])
.where('session_id', '=', sessionId)
.first();
if (result == null) {
return null;
}
try {
final payload = result['payload'] as String;
// Simplified parsing - in production use proper JSON deserialization
if (payload.startsWith('{') && payload.endsWith('}')) {
final Map<String, dynamic> data = {};
final pairs = payload.substring(1, payload.length - 1).split(', ');
for (final pair in pairs) {
final parts = pair.split(': ');
if (parts.length == 2) {
final key = parts[0].replaceAll("'", '').replaceAll('"', '');
final value = parts[1].replaceAll("'", '').replaceAll('"', '');
data[key] = value;
}
}
return data;
}
return null;
} catch (e) {
return null;
}
}