about summary refs log tree commit diff
path: root/BugMine.Web/Classes/BugMineStorage.cs
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2024-04-20 23:48:43 +0200
committerRory& <root@rory.gay>2024-04-20 23:48:43 +0200
commit68fe1a2284045908d92ef06c1c26cd937ded784e (patch)
tree71144f404f060888dcc5e4036e038abe857adc4e /BugMine.Web/Classes/BugMineStorage.cs
parentStart adding pages (diff)
downloadBugMine-68fe1a2284045908d92ef06c1c26cd937ded784e.tar.xz
Add basic project management
Diffstat (limited to 'BugMine.Web/Classes/BugMineStorage.cs')
-rw-r--r--BugMine.Web/Classes/BugMineStorage.cs49
1 files changed, 31 insertions, 18 deletions
diff --git a/BugMine.Web/Classes/BugMineStorage.cs b/BugMine.Web/Classes/BugMineStorage.cs

index b45e253..73b46b5 100644 --- a/BugMine.Web/Classes/BugMineStorage.cs +++ b/BugMine.Web/Classes/BugMineStorage.cs
@@ -1,20 +1,25 @@ using LibMatrix; using LibMatrix.Homeservers; +using LibMatrix.Interfaces.Services; using LibMatrix.Services; using Microsoft.AspNetCore.Components; namespace BugMine.Web.Classes; -public class BugMineStorage(ILogger<BugMineStorage> logger, TieredStorageService storageService, HomeserverProviderService homeserverProviderService, NavigationManager navigationManager) { +public class BugMineStorage( + ILogger<BugMineStorage> logger, + IStorageProvider localStorage, + HomeserverProviderService homeserverProviderService, + NavigationManager navigationManager) { public async Task<List<UserAuth>?> GetAllTokens() { logger.LogTrace("Getting all tokens."); - return await storageService.DataStorageProvider!.LoadObjectAsync<List<UserAuth>>("bugmine.tokens") ?? + return await localStorage.LoadObjectAsync<List<UserAuth>>("bugmine.tokens") ?? new List<UserAuth>(); } public async Task<UserAuth?> GetCurrentToken() { logger.LogTrace("Getting current token."); - var currentToken = await storageService.DataStorageProvider!.LoadObjectAsync<UserAuth>("bugmine.token"); + var currentToken = await localStorage.LoadObjectAsync<UserAuth>("bugmine.token"); var allTokens = await GetAllTokens(); if (allTokens is null or { Count: 0 }) { await SetCurrentToken(null); @@ -37,27 +42,40 @@ public class BugMineStorage(ILogger<BugMineStorage> logger, TieredStorageService var tokens = await GetAllTokens() ?? new List<UserAuth>(); tokens.Add(UserAuth); - await storageService.DataStorageProvider!.SaveObjectAsync("bugmine.tokens", tokens); + await localStorage!.SaveObjectAsync("bugmine.tokens", tokens); } - private async Task<AuthenticatedHomeserverGeneric?> GetCurrentSession() { + private async Task<BugMineClient?> GetCurrentSession() { logger.LogTrace("Getting current session."); var token = await GetCurrentToken(); if (token == null) { return null; } - return await homeserverProviderService.GetAuthenticatedWithToken(token.Homeserver, token.AccessToken, token.Proxy); + var hc = await homeserverProviderService.GetAuthenticatedWithToken(token.Homeserver, token.AccessToken, token.Proxy, useGeneric: true); + return new BugMineClient(hc); } - public async Task<AuthenticatedHomeserverGeneric?> GetSession(UserAuth userAuth) { + public async Task<BugMineClient?> GetSession(UserAuth userAuth) { logger.LogTrace("Getting session."); - return await homeserverProviderService.GetAuthenticatedWithToken(userAuth.Homeserver, userAuth.AccessToken, userAuth.Proxy); + var hc = await homeserverProviderService.GetAuthenticatedWithToken(userAuth.Homeserver, userAuth.AccessToken, userAuth.Proxy, useGeneric: true); + return new BugMineClient(hc); } - public async Task<AuthenticatedHomeserverGeneric?> GetCurrentSessionOrNavigate() { + public async Task<BugMineClient?> GetCurrentSessionOrNavigate() { logger.LogTrace("Getting current session or navigating."); - AuthenticatedHomeserverGeneric? session = null; + var session = await GetCurrentSessionOrNull(); + + if (session is null) { + logger.LogInformation("No session found. Navigating to login."); + navigationManager.NavigateTo("/Login"); + } + + return session; + } + + public async Task<BugMineClient?> GetCurrentSessionOrNull() { + BugMineClient? session = null; try { //catch if the token is invalid @@ -74,11 +92,6 @@ public class BugMineStorage(ILogger<BugMineStorage> logger, TieredStorageService throw; } - if (session is null) { - logger.LogInformation("No session found. Navigating to login."); - navigationManager.NavigateTo("/Login"); - } - return session; } @@ -90,11 +103,11 @@ public class BugMineStorage(ILogger<BugMineStorage> logger, TieredStorageService } tokens.RemoveAll(x => x.AccessToken == auth.AccessToken); - await storageService.DataStorageProvider.SaveObjectAsync("bugmine.tokens", tokens); + await localStorage.SaveObjectAsync("bugmine.tokens", tokens); } public async Task SetCurrentToken(UserAuth? auth) { logger.LogTrace("Setting current token."); - await storageService.DataStorageProvider.SaveObjectAsync("bugmine.token", auth); + await localStorage.SaveObjectAsync("bugmine.token", auth); } -} +} \ No newline at end of file