writeSharedProfileToFile function
Implementation
Future<void> writeSharedProfileToFile({
required File file,
required String userId,
required SharedProfileInfo profile,
required SharedProfileSession session,
String? apiUrl,
String? activeProject,
}) async {
if (!session.hasAccessToken || userId.trim().isEmpty) {
return;
}
final settings = await _readSettings(file);
final users = _ensureMap(settings, "users");
final userSettings = _ensureMap(users, userId);
_mergeLocalProjectIntoProfile(users: users, userSettings: userSettings, userId: userId);
userSettings["profile"] = profile.toJson();
userSettings["api_url"] = _normalizeApiUrl(apiUrl);
userSettings["session"] = session.toJson();
if (activeProject != null && activeProject.trim().isNotEmpty) {
final projectSettings = _ensureMap(userSettings, "project");
projectSettings["active_project"] = activeProject.trim();
}
users.remove(_localStateUserId);
settings["active_user_id"] = userId;
await _writeSettings(file, settings);
}