diff --git a/API/src/main/java/cc/fascinated/Main.java b/API/src/main/java/cc/fascinated/Main.java
index 4ceeedf..a9a2977 100644
--- a/API/src/main/java/cc/fascinated/Main.java
+++ b/API/src/main/java/cc/fascinated/Main.java
@@ -39,7 +39,5 @@ public class Main {
// Start the app
SpringApplication.run(Main.class, args);
-
-
}
}
\ No newline at end of file
diff --git a/Mod/API/Authentication.cs b/Mod/API/Authentication.cs
index b30c7e6..9bfbc8b 100644
--- a/Mod/API/Authentication.cs
+++ b/Mod/API/Authentication.cs
@@ -2,42 +2,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using System.Net.Http;
using System.Threading.Tasks;
namespace ScoreTracker.API
{
- internal class AuthHelper
+ internal class SigninResponse
{
- public bool IsLoggedIn;
- public string FailReason = "";
-
- ///
- /// Ensure the user is logged in
- ///
- /// the task
- public async Task EnsureLoggedIn()
- {
- if (Authentication.IsSignedIn() && await Authentication.ValidateAuthToken())
- {
- return; // Already logged in with a valid token
- }
-
- await Authentication.LoginUser(
- token => {
- IsLoggedIn = true;
- Request.PersistHeaders(new Dictionary
- {
- { "Authorization", $"Bearer {token}" }
- });
- },
- reason =>
- {
- FailReason = reason; // Store the reason for failure
- Request.HttpClient.DefaultRequestHeaders.Clear(); // Clear headers
- }
- );
- }
+ public bool Success { get; set; }
+ public string Response { get; set; }
}
internal class Authentication
@@ -46,11 +18,42 @@ namespace ScoreTracker.API
private static string _authToken;
///
- /// Are we signed in?
+ /// Validate the auth token and sign in if necessary
///
- public static bool IsSignedIn()
+ public static async Task ValidateAndSignIn()
{
- return _signedIn;
+ if (_signedIn && await ValidateAuthToken())
+ {
+ return new SigninResponse
+ {
+ Success = true,
+ Response = null
+ }; // Already signed in
+ }
+
+ bool success = false;
+ string response = null;
+
+ await LoginUser(
+ token => {
+ success = true;
+ Request.PersistHeaders(new Dictionary
+ {
+ { "Authorization", $"Bearer {token}" }
+ });
+ },
+ reason =>
+ {
+ response = reason;
+ Request.HttpClient.DefaultRequestHeaders.Clear(); // Clear headers
+ }
+ );
+
+ return new SigninResponse
+ {
+ Success = success,
+ Response = response
+ };
}
///
diff --git a/Mod/API/Request.cs b/Mod/API/Request.cs
index a078555..ab1247d 100644
--- a/Mod/API/Request.cs
+++ b/Mod/API/Request.cs
@@ -35,11 +35,10 @@ namespace ScoreTracker.API
{
if (checkAuth)
{
- var authHelper = new AuthHelper();
- await authHelper.EnsureLoggedIn();
- if (!authHelper.IsLoggedIn)
+ var signinResponse = await Authentication.ValidateAndSignIn();
+ if (!signinResponse.Success)
{
- throw new Exception($"Failed to log in: {authHelper.FailReason}");
+ throw new Exception($"Failed to log in: {signinResponse.Response}");
}
}
var jsonString = JsonConvert.SerializeObject(json, Formatting.None);
diff --git a/Mod/Plugin.cs b/Mod/Plugin.cs
index 4925ba4..bbe65a8 100644
--- a/Mod/Plugin.cs
+++ b/Mod/Plugin.cs
@@ -40,8 +40,7 @@ namespace ScoreTracker
// Ensure the user is logged in
Task.Factory.StartNew(async () =>
{
- var authHelper = new AuthHelper();
- await authHelper.EnsureLoggedIn();
+ await Authentication.ValidateAndSignIn(); // Ensure the user is signed in
});
}
diff --git a/Mod/Properties/AssemblyInfo.cs.d b/Mod/Properties/AssemblyInfo.cs.d
deleted file mode 100644
index 02520ea..0000000
--- a/Mod/Properties/AssemblyInfo.cs.d
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("ScoreTracker")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("ScoreTracker")]
-[assembly: AssemblyCopyright("Copyright © Fascinated 2024")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("8d4a32fe-ab2a-4d8e-a53b-6a1d4f1d7bb9")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("0.0.1")]
-[assembly: AssemblyFileVersion("0.0.1")]
diff --git a/Mod/ScoreTracker.csproj b/Mod/ScoreTracker.csproj
index 76ead5d..dde27b4 100644
--- a/Mod/ScoreTracker.csproj
+++ b/Mod/ScoreTracker.csproj
@@ -5,7 +5,6 @@
net472
Library
7.3
- true
..\Refs
$(LocalRefsDir)
$(MSBuildProjectDirectory)\
@@ -17,6 +16,9 @@
prompt
Release
+
+ none
+
False