update libs

This commit is contained in:
Kirill Chikalin
2025-02-13 17:48:12 +03:00
parent e17e7c2786
commit 275dc598c7
816 changed files with 22479 additions and 10792 deletions

View File

@@ -0,0 +1,74 @@
using AssetStoreTools.Api.Models;
using Newtonsoft.Json;
using System;
using System.Net;
using System.Net.Http;
namespace AssetStoreTools.Api.Responses
{
internal class AuthenticationResponse : AssetStoreResponse
{
public User User { get; set; }
public AuthenticationResponse() : base() { }
public AuthenticationResponse(Exception e) : base(e) { }
public AuthenticationResponse(HttpStatusCode statusCode, HttpRequestException fallbackException)
{
string message;
switch (statusCode)
{
case HttpStatusCode.Unauthorized:
message = "Incorrect email and/or password. Please try again.";
break;
case HttpStatusCode.InternalServerError:
message = "Authentication request failed\nIf you were logging in with your Unity Cloud account, please make sure you are still logged in.\n" +
"This might also be caused by too many invalid login attempts - if that is the case, please try again later.";
break;
default:
Exception = fallbackException;
return;
}
Exception = new Exception(message);
}
public AuthenticationResponse(string json)
{
try
{
ValidateAssetStoreResponse(json);
var serializerSettings = new JsonSerializerSettings()
{
ContractResolver = User.AssetStoreUserResolver.Instance
};
User = JsonConvert.DeserializeObject<User>(json, serializerSettings);
ValidateLoginData();
ValidatePublisher();
Success = true;
}
catch (Exception e)
{
Success = false;
Exception = e;
}
}
private void ValidateLoginData()
{
if (string.IsNullOrEmpty(User.Id)
|| string.IsNullOrEmpty(User.SessionId)
|| string.IsNullOrEmpty(User.Name)
|| string.IsNullOrEmpty(User.Username))
throw new Exception("Could not parse the necessary publisher information from the response.");
}
private void ValidatePublisher()
{
if (!User.IsPublisher)
throw new Exception($"Your Unity ID {User.Name} is not currently connected to a publisher account. " +
$"Please create a publisher profile.");
}
}
}