2025-09-22 00:29:51 -05:00
|
|
|
using LANCommander.SDK.Abstractions;
|
2025-11-19 00:36:03 -06:00
|
|
|
using LANCommander.SDK.Models;
|
2025-09-22 00:29:51 -05:00
|
|
|
|
|
|
|
|
namespace LANCommander.SDK.Providers;
|
|
|
|
|
|
2025-11-19 00:36:03 -06:00
|
|
|
public class TokenProvider(ISettingsProvider settingsProvider) : ITokenProvider
|
2025-09-22 00:29:51 -05:00
|
|
|
{
|
2026-03-21 15:12:57 +11:00
|
|
|
private AuthToken? _cachedToken;
|
|
|
|
|
|
2025-11-19 00:36:03 -06:00
|
|
|
public void SetToken(AuthToken token)
|
2025-09-22 00:29:51 -05:00
|
|
|
{
|
2026-03-21 15:12:57 +11:00
|
|
|
_cachedToken = token;
|
|
|
|
|
|
2025-11-19 00:36:03 -06:00
|
|
|
settingsProvider.Update(s =>
|
|
|
|
|
{
|
|
|
|
|
s.Authentication.Token = token;
|
|
|
|
|
s.Authentication.OfflineModeEnabled = false;
|
|
|
|
|
});
|
2025-09-22 00:29:51 -05:00
|
|
|
}
|
|
|
|
|
|
2026-03-21 15:12:57 +11:00
|
|
|
AuthToken ITokenProvider.GetToken() => _cachedToken ?? settingsProvider.CurrentValue.Authentication?.Token;
|
2025-09-22 00:29:51 -05:00
|
|
|
}
|