From 68fe1a2284045908d92ef06c1c26cd937ded784e Mon Sep 17 00:00:00 2001 From: Rory& Date: Sat, 20 Apr 2024 23:48:43 +0200 Subject: Add basic project management --- BugMine.Web/Classes/BugMineStorage.cs | 49 ++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 18 deletions(-) (limited to 'BugMine.Web/Classes') 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 logger, TieredStorageService storageService, HomeserverProviderService homeserverProviderService, NavigationManager navigationManager) { +public class BugMineStorage( + ILogger logger, + IStorageProvider localStorage, + HomeserverProviderService homeserverProviderService, + NavigationManager navigationManager) { public async Task?> GetAllTokens() { logger.LogTrace("Getting all tokens."); - return await storageService.DataStorageProvider!.LoadObjectAsync>("bugmine.tokens") ?? + return await localStorage.LoadObjectAsync>("bugmine.tokens") ?? new List(); } public async Task GetCurrentToken() { logger.LogTrace("Getting current token."); - var currentToken = await storageService.DataStorageProvider!.LoadObjectAsync("bugmine.token"); + var currentToken = await localStorage.LoadObjectAsync("bugmine.token"); var allTokens = await GetAllTokens(); if (allTokens is null or { Count: 0 }) { await SetCurrentToken(null); @@ -37,27 +42,40 @@ public class BugMineStorage(ILogger logger, TieredStorageService var tokens = await GetAllTokens() ?? new List(); tokens.Add(UserAuth); - await storageService.DataStorageProvider!.SaveObjectAsync("bugmine.tokens", tokens); + await localStorage!.SaveObjectAsync("bugmine.tokens", tokens); } - private async Task GetCurrentSession() { + private async Task 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 GetSession(UserAuth userAuth) { + public async Task 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 GetCurrentSessionOrNavigate() { + public async Task 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 GetCurrentSessionOrNull() { + BugMineClient? session = null; try { //catch if the token is invalid @@ -74,11 +92,6 @@ public class BugMineStorage(ILogger 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 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 -- cgit 1.5.1