setActiveSharedProfileInFile function

Future<SharedProfile> setActiveSharedProfileInFile({
  1. required File file,
  2. required String userId,
})

Implementation

Future<SharedProfile> setActiveSharedProfileInFile({required File file, required String userId}) async {
  final settings = await _readSettings(file);
  final users = settings["users"];
  if (users is! Map || users[userId] is! Map) {
    throw StateError("No saved profile matches $userId.");
  }

  settings["active_user_id"] = userId;
  await _writeSettings(file, settings);
  final snapshot = await loadSharedProfileSettingsFromFile(file);
  final selected = snapshot.activeProfile;
  if (selected == null || selected.userId != userId) {
    throw StateError("Unable to activate profile $userId.");
  }
  return selected;
}