diff --git a/SharpQuark/ApiResult/BaseApiResult.cs b/SharpQuark/ApiResult/BaseApiResult.cs index 1b889feb9f2f5ffe4778dcfaf87a3efb5beb520a..c8dda1b5fbcf861d7375e8f3db989ca7929dc1f6 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 389c667c0d5b8cba0e7d959cccf53584d379fcfa..b6b71272c62f3df9d876ae8620590831c9cf8fdc 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 68086add6e4bc29c44c5a0604632e89f5a0543f3..8f54db0a7bb07803bce91edc9f077a4ac87025d3 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 d20c6fd8156aa2d0b99268101365e32fd18cfec8..0254244c6fe2b9381cf78ab123044698f293c2a6 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 eb960527da95d7ba370a24b4c48db332f0b98961..04c4a6c6ee87f697f9e61a5e65a71ca54aa04daf 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);