Authenticate upon start of the application if no settings exist

This commit is contained in:
Pat Hartl 2023-01-25 21:08:05 -06:00
parent 6191d647f6
commit db9c569ebc
4 changed files with 20 additions and 9 deletions

View file

@ -21,7 +21,8 @@ namespace LANCommander.PlaynitePlugin
public LANCommanderClient(string baseUrl)
{
Client = new RestClient(baseUrl);
if (!String.IsNullOrWhiteSpace(baseUrl))
Client = new RestClient(baseUrl);
}
private T PostRequest<T>(string route, object body)

View file

@ -1,6 +1,7 @@
using LANCommander.PlaynitePlugin.Extensions;
using LANCommander.SDK;
using Playnite.SDK;
using Playnite.SDK.Events;
using Playnite.SDK.Models;
using Playnite.SDK.Plugins;
using System;
@ -41,6 +42,7 @@ namespace LANCommander.PlaynitePlugin
};
Settings = new LANCommanderSettingsViewModel(this);
LANCommander = new LANCommanderClient(Settings.ServerAddress);
LANCommander.Token = new SDK.Models.AuthToken()
{
@ -51,11 +53,16 @@ namespace LANCommander.PlaynitePlugin
PowerShellRuntime = new PowerShellRuntime();
}
public override void OnApplicationStarted(OnApplicationStartedEventArgs args)
{
ShowAuthenticationWindow();
}
public override IEnumerable<GameMetadata> GetGames(LibraryGetGamesArgs args)
{
var gameMetadata = new List<GameMetadata>();
if (!LANCommander.ValidateToken(LANCommander.Token))
if (LANCommander.Token != null && !LANCommander.ValidateToken(LANCommander.Token))
{
try
{
@ -298,7 +305,7 @@ namespace LANCommander.PlaynitePlugin
window.Content = new Views.Authentication(this);
window.DataContext = new ViewModels.Authentication()
{
ServerAddress = Settings.ServerAddress
ServerAddress = Settings?.ServerAddress
};
window.Owner = PlayniteApi.Dialogs.GetCurrentAppWindow();

View file

@ -26,11 +26,14 @@ namespace LANCommander.PlaynitePlugin
var settings = Plugin.LoadPluginSettings<LANCommanderSettingsViewModel>();
ServerAddress = settings.ServerAddress;
AccessToken = settings.AccessToken;
RefreshToken = settings.RefreshToken;
InstallDirectory = settings.InstallDirectory;
PlayerName = settings.PlayerName;
if (settings != null)
{
ServerAddress = settings.ServerAddress;
AccessToken = settings.AccessToken;
RefreshToken = settings.RefreshToken;
InstallDirectory = settings.InstallDirectory;
PlayerName = settings.PlayerName;
}
}
public void BeginEdit()

View file

@ -54,7 +54,7 @@ namespace LANCommander.PlaynitePlugin.Views
{
try
{
if (Plugin.LANCommander == null)
if (Plugin.LANCommander == null || Plugin.LANCommander.Client == null)
Plugin.LANCommander = new LANCommanderClient(Context.ServerAddress);
else
Plugin.LANCommander.Client.BaseUrl = new Uri(Context.ServerAddress);