From 13914514047e3fd4b5d30db58029673b38c12cf8 Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Tue, 9 Apr 2024 16:45:46 +0200 Subject: [PATCH] [frontend/session] Current should be a StoredUser --- .../Core/Services/SessionService.cs | 112 +++++++++--------- 1 file changed, 57 insertions(+), 55 deletions(-) diff --git a/Iceshrimp.Frontend/Core/Services/SessionService.cs b/Iceshrimp.Frontend/Core/Services/SessionService.cs index d11057ca..f1159204 100644 --- a/Iceshrimp.Frontend/Core/Services/SessionService.cs +++ b/Iceshrimp.Frontend/Core/Services/SessionService.cs @@ -7,65 +7,67 @@ namespace Iceshrimp.Frontend.Core.Services; internal class SessionService { - [Inject] public ISyncLocalStorageService LocalStorage { get; } - [Inject] public ApiService ApiService { get; } - public Dictionary Users { get; } - public UserResponse? Current { get; private set; } + [Inject] public ISyncLocalStorageService LocalStorage { get; } + [Inject] public ApiService ApiService { get; } + public Dictionary Users { get; } + public StoredUser? Current { get; private set; } - public SessionService(ApiService apiService, ISyncLocalStorageService localStorage) - { - ApiService = apiService; - LocalStorage = localStorage; - Users = LocalStorage.GetItem>("Users") ?? []; - var lastUser = LocalStorage.GetItem("last_user"); - if (lastUser != null) - { - SetSession(lastUser); - } - } + public SessionService(ApiService apiService, ISyncLocalStorageService localStorage) + { + ApiService = apiService; + LocalStorage = localStorage; + Users = LocalStorage.GetItem>("Users") ?? []; + var lastUser = LocalStorage.GetItem("last_user"); + if (lastUser != null) + { + SetSession(lastUser); + } + } - private void WriteUsers() - { - LocalStorage.SetItem("Users", Users); - } + private void WriteUsers() + { + LocalStorage.SetItem("Users", Users); + } - public void AddUser(StoredUser user) - { - try - { - Users.Add(user.Id, user); - } - catch( ArgumentException ) // Update user if it already exists. - { - Users[user.Id] = user; - } - WriteUsers(); - } + public void AddUser(StoredUser user) + { + try + { + Users.Add(user.Id, user); + } + catch (ArgumentException) // Update user if it already exists. + { + Users[user.Id] = user; + } - public void DeleteUser(string id) - { - if (id == Current?.Id) throw new ArgumentException("Cannot remove current user."); - Users.Remove(id); - WriteUsers(); - } + WriteUsers(); + } - private StoredUser? GetUserById(string id) - { - var user = Users[id]; - return user; - } + public void DeleteUser(string id) + { + if (id == Current?.Id) throw new ArgumentException("Cannot remove current user."); + Users.Remove(id); + WriteUsers(); + } - public void EndSession() - { - Current = null; - LocalStorage.RemoveItem("last_user"); - } - public void SetSession(string id) - { - var user = GetUserById(id); - if (user == null) throw new Exception("Did not find User in Local Storage"); - ApiService.SetBearerToken(user.Token); - Current = user; - LocalStorage.SetItem("last_user", user.Id); - } + private StoredUser? GetUserById(string id) + { + var user = Users[id]; + return user; + } + + public void EndSession() + { + Current = null; + LocalStorage.RemoveItem("last_user"); + } + + public void SetSession(string id) + { + var user = GetUserById(id); + if (user == null) throw new Exception("Did not find User in Local Storage"); + ApiService.SetBearerToken(user.Token); + Current = user; + LocalStorage.SetItem("last_user", user.Id); + } } \ No newline at end of file