Skip to content
Snippets Groups Projects
Unverified Commit 7eef612b authored by Amy's avatar Amy
Browse files

More cleanening uppening

parent e0020783
No related branches found
No related tags found
No related merge requests found
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
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SharpQuark.ApiResult;
namespace SharpQuark;
......
......@@ -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>
......
......@@ -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;
}
}
......
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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment