From 7eef612b7b760767f17950b6b488d174c628b2d2 Mon Sep 17 00:00:00 2001
From: Amy <amy@litdevs.org>
Date: Sun, 11 Feb 2024 16:05:04 +0200
Subject: [PATCH] More cleanening uppening

---
 SharpQuark/ApiResult/BaseApiResult.cs | 14 +++++-------
 SharpQuark/Methods/Auth.cs            |  1 -
 SharpQuark/SharpQuark.csproj          |  4 ++--
 SharpQuark/Token/Token.cs             | 32 +++++++++++----------------
 SharpQuark/Token/TokenCredential.cs   | 18 +++++----------
 5 files changed, 26 insertions(+), 43 deletions(-)

diff --git a/SharpQuark/ApiResult/BaseApiResult.cs b/SharpQuark/ApiResult/BaseApiResult.cs
index 1b889fe..c8dda1b 100644
--- a/SharpQuark/ApiResult/BaseApiResult.cs
+++ b/SharpQuark/ApiResult/BaseApiResult.cs
@@ -1,29 +1,27 @@
 using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
 
 namespace SharpQuark.ApiResult;
 
 public class BaseApiResult
 {
     [JsonProperty("request")]
-    public Request Request;
+    public required Request Request;
     [JsonProperty("response")]
-    public Response Response;
+    public Response? Response;
 }
 
 public class Request
 {
     [JsonProperty("status_code")]
-    public int StatusCode;
+    public required int StatusCode;
     [JsonProperty("success")]
-    public bool Success;
+    public required bool Success;
     [JsonProperty("cat")]
-    public string Cat;
+    public required string Cat;
 }
 
 public class Response
 {
     [JsonProperty("message")]
-    public string Message;
-    public JObject RawData;
+    public required string Message;
 }
\ No newline at end of file
diff --git a/SharpQuark/Methods/Auth.cs b/SharpQuark/Methods/Auth.cs
index 389c667..b6b7127 100644
--- a/SharpQuark/Methods/Auth.cs
+++ b/SharpQuark/Methods/Auth.cs
@@ -1,5 +1,4 @@
 using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
 using SharpQuark.ApiResult;
 
 namespace SharpQuark;
diff --git a/SharpQuark/SharpQuark.csproj b/SharpQuark/SharpQuark.csproj
index 68086ad..8f54db0 100644
--- a/SharpQuark/SharpQuark.csproj
+++ b/SharpQuark/SharpQuark.csproj
@@ -4,8 +4,8 @@
         <TargetFramework>net8.0</TargetFramework>
         <ImplicitUsings>enable</ImplicitUsings>
         <Nullable>enable</Nullable>
-        <AssemblyVersion>2024.2.11.0</AssemblyVersion>
-        <Version>2024.2.11.0-beta</Version>
+        <AssemblyVersion>2024.2.11.1</AssemblyVersion>
+        <Version>2024.2.11.1-beta</Version>
     </PropertyGroup>
 
     <ItemGroup>
diff --git a/SharpQuark/Token/Token.cs b/SharpQuark/Token/Token.cs
index d20c6fd..0254244 100644
--- a/SharpQuark/Token/Token.cs
+++ b/SharpQuark/Token/Token.cs
@@ -14,16 +14,15 @@ public class TokenException(string? exception = null) : Exception(exception);
 
 public class Token
 {
-    private string? token;
-    private TokenType type;
-    private DateTime expiresAt;
-    private DateTime createdAt;
+    private string? _token;
+    private TokenType _type;
+    private DateTime _expiresAt;
     public bool Expired
     {
         get
         {
-            if (type == TokenType.Refresh) return false;
-            return DateTime.Now > expiresAt;
+            if (_type == TokenType.Refresh) return false;
+            return DateTime.Now > _expiresAt;
         }
     }
 
@@ -45,7 +44,7 @@ public class Token
         var prefixPart = tokenParts[0];
         var typePart = tokenParts[1];
         // randomPart can be ignored, it has no useful data
-        var creationTimePart = tokenParts[3];
+        // creationTimePart can also be ignored, turns out we don't care when the token was made
         var expirationTimePart = tokenParts[4];
 
         if (prefixPart != "LQ") throw new TokenException($"Wrong token prefix: expected 'LQ', got {prefixPart}");
@@ -56,14 +55,11 @@ public class Token
             _ => throw new TokenException($"Invalid token type: expected one of 'RE', 'AC', got {typePart}")
         };
 
-        DateTime creationDate;
         DateTime expiryDate;
         try
         {
-            var creationTime = Base36Converter.ConvertFrom(creationTimePart);
             var expiryTime = Base36Converter.ConvertFrom(expirationTimePart);
             var origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
-            creationDate = origin.AddMilliseconds(creationTime);
             expiryDate = origin.AddMilliseconds(expiryTime);
         }
         catch (Exception e)
@@ -75,25 +71,23 @@ public class Token
         {
             return new AccessToken
             {
-                token = token,
-                type = tokenType,
-                expiresAt = expiryDate,
-                createdAt = creationDate
+                _token = token,
+                _type = tokenType,
+                _expiresAt = expiryDate
             };
         }
 
         return new RefreshToken
         {
-            token = token,
-            type = tokenType,
-            expiresAt = expiryDate,
-            createdAt = creationDate
+            _token = token,
+            _type = tokenType,
+            _expiresAt = expiryDate
         };
     }
 
     public override string? ToString()
     {
-        return token;
+        return _token;
     }
 }
 
diff --git a/SharpQuark/Token/TokenCredential.cs b/SharpQuark/Token/TokenCredential.cs
index eb96052..04c4a6c 100644
--- a/SharpQuark/Token/TokenCredential.cs
+++ b/SharpQuark/Token/TokenCredential.cs
@@ -1,11 +1,9 @@
-using System.Diagnostics;
+namespace SharpQuark.Token;
 
-namespace SharpQuark.Token;
-
-public class TokenCredential
+public class TokenCredential(AccessToken accessToken, RefreshToken refreshToken)
 {
-    public AccessToken AccessToken;
-    public readonly RefreshToken RefreshToken;
+    public AccessToken AccessToken = accessToken;
+    public readonly RefreshToken RefreshToken = refreshToken;
 
     public bool Expired => AccessToken.Expired;
     
@@ -23,16 +21,10 @@ public class TokenCredential
         }
     }
 
-    public TokenCredential(AccessToken accessToken, RefreshToken refreshToken)
-    {
-        AccessToken = accessToken;
-        RefreshToken = refreshToken;
-    }
-    
     public static async Task<TokenCredential> Login(string email, string password, NetworkInformation networkInformation)
     {
         // Create temporary Lightquark instance
-        var tempLq = new Lightquark(new TokenCredential(new AccessToken(), new RefreshToken()), networkInformation);
+        var tempLq = new Lightquark(new TokenCredential(new AccessToken(), new RefreshToken()), networkInformation, null, "v3", true);
         var res = await tempLq.AuthToken(email, password);
         var accessToken = (AccessToken)Token.From(res.Response.AccessToken);
         var refreshToken = (RefreshToken)Token.From(res.Response.RefreshToken);
-- 
GitLab