write method

  1. @override
Future<void> write(
  1. String sessionId,
  2. Map<String, dynamic> data
)
override

Store session data

Implementation

@override
Future<void> write(String sessionId, Map<String, dynamic> data) async {
  final payload = jsonEncode(data);
  final lastActivity =
      data['last_activity'] ?? DateTime.now().toIso8601String();

  final queryBuilder = _connection.queryBuilder<Map<String, dynamic>>(
    _tableName,
  );

  // Check if session exists
  final exists = await queryBuilder
      .where('session_id', '=', sessionId)
      .exists();

  if (exists) {
    // Update existing session
    await queryBuilder.where('session_id', '=', sessionId).update({
      'payload': payload,
      'last_activity': lastActivity,
    });
  } else {
    // Insert new session
    await queryBuilder.insert({
      'session_id': sessionId,
      'payload': payload,
      'last_activity': lastActivity,
    });
  }
}