extendSession method
Extends session duration
Implementation
Future<DSSession> extendSession(String userId, {Duration? additionalTime}) async {
final existing = _activeSessions[userId];
if (existing == null) {
throw SessionNotFoundException('No session found for user: $userId');
}
final newExpiration = existing.expiresAt.add(
additionalTime ?? const Duration(hours: 1)
);
final extendedSession = DSSession(
userId: userId,
deviceId: existing.deviceId,
createdAt: existing.createdAt,
expiresAt: newExpiration,
);
_activeSessions[userId] = extendedSession;
return extendedSession;
}