PO/Library/Artifacts/fe/feceb6ab620598c761eb64bd970...

173 lines
9.7 KiB
Plaintext
Raw Normal View History

2022-01-12 10:06:03 +03:00
<0F>&<26>2019.4.19f1<00><><EFBFBD><EFBFBD> <00><>f<EFBFBD><66>!<21>5<>9<EFBFBD>4Q<0E><>B<00>7<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><><00> E<00> <00><00>#<00>.<00>,<00>5a<00> <00><00>#<00>.<00>,<00><00><00>r<00> <00><00># <00>.<00>,
<00>H<00><><00><><EFBFBD><EFBFBD><EFBFBD> <01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD> @<00><00><00> Q<00>j<00><00><00>J<00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><00><00>j<00><><EFBFBD><EFBFBD><EFBFBD><00>\<00><00><><EFBFBD><EFBFBD><EFBFBD><00>H<00>r<00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00>Q<00>j<00>H<00>w<00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00>Q<00>j<00>H<00><><00><><EFBFBD><EFBFBD><00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00>Q<00>j<00>y<00>
<00> <00><00>#!<00>.<00>,"<00><00><><00><><EFBFBD><EFBFBD>#@1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>$<00><00><00>%.<00>j<00>&<00><00><><00><><EFBFBD><EFBFBD>'<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>(<00><00><00><00>)<00>j<00><><EFBFBD><EFBFBD><EFBFBD>*<00>H<00><><00><><EFBFBD><EFBFBD><EFBFBD>+<00>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>,@<00><00><00>-Q<00>j<00>.y<00>
<00> /<00><00>#0<00>.<00>,1<00> <00><>2@<00><00><> 3@<00><00>#4<00>.<00>,5<00>H<00><><00><><EFBFBD><EFBFBD>6<01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>7@<00><00><00>8Q<00>j<00>9H<00><><00><><EFBFBD><EFBFBD>:<01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>;@<00><00><00><Q<00>j<00>=H<00><><00><><EFBFBD><EFBFBD>><01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>?@<00><00><00>@Q<00>j<00>AMonoImporterPPtr<EditorExtension>m_FileIDm_PathIDPPtr<PrefabInstance>m_ExternalObjectsSourceAssetIdentifiertypeassemblynamem_UsedFileIDsm_DefaultReferencesexecutionOrdericonm_UserDatam_AssetBundleNamem_AssetBundleVariants<00><><EFBFBD>G<EFBFBD><47>܏Z56<35>:!@i<>J*<00><00>7<00><><EFBFBD><EFBFBD><EFBFBD><00><00><00><><00>E<00> <00><00><00>.<00><00>(a<00> <00><00><00>.<00><00><00><00>r<00> <00><00> <00>.<00>
<00>H<00><><00><><EFBFBD><EFBFBD><EFBFBD> <01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD> @<00><00><00> Q<00>j<00>H<00><><00><><EFBFBD><EFBFBD><EFBFBD><01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00>Q<00>j<00><00><00>=<00><><EFBFBD><EFBFBD><01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD><01><00><00><00><00>j<00><><EFBFBD><EFBFBD><EFBFBD><01>H<00><><00><><EFBFBD><EFBFBD><EFBFBD><01>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>@<00><00><00>Q<00>j<00>y<00>
<00> <00><00><00>.<00><00>y<00>Q <00><00><00>.<00> <00><00><00>X!H<00>i<00><><EFBFBD><EFBFBD>"<10>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>#@<00><00><00>$Q<00>j<00>%H<00>u<00><><EFBFBD><EFBFBD>&<10>1<00>1<00><><EFBFBD><EFBFBD><EFBFBD>'@<00><00><00>(Q<00>j<00>)PPtr<EditorExtension>m_FileIDm_PathIDPPtr<PrefabInstance>m_DefaultReferencesm_Iconm_ExecutionOrderm_ClassNamem_Namespace\<00>y<EFBFBD>`p<00>y<EFBFBD>PlasticScmRestApiClient<00>using System;
using System.IO;
using System.Net;
using Unity.Plastic.Newtonsoft.Json;
using Codice.Client.Common.WebApi;
using Codice.CM.Common;
using Codice.LogWrapper;
using PlasticGui.Help.NewVersions;
using PlasticGui.WebApi.Responses;
namespace Unity.PlasticSCM.Editor.WebApi
{
internal static class PlasticScmRestApiClient
{
internal static UnityPackageBetaEnrollResponse IsBetaEnabled(string bearerToken)
{
Uri endpoint = mWebApiUris.GetFullUri(IsBetaEnabledEndpoint);
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(endpoint);
request.Method = "GET";
request.ContentType = "application/json";
request.Headers.Add(
HttpRequestHeader.Authorization,
string.Format("Bearer {0}", bearerToken));
return GetResponse<UnityPackageBetaEnrollResponse>(request);
}
catch (Exception ex)
{
mLog.ErrorFormat(
"Unable to retrieve is beta enabled '{0}': {1}",
endpoint.ToString(), ex.Message);
mLog.DebugFormat(
"StackTrace:{0}{1}",
Environment.NewLine, ex.StackTrace);
return null;
}
}
internal static TokenExchangeResponse TokenExchange(string unityAccessToken)
{
Uri endpoint = mWebApiUris.GetFullUri(
string.Format("{0}/{1}",TokenExchangeEndpoint,unityAccessToken ));
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(endpoint);
request.Method = "GET";
request.ContentType = "application/json";
return GetResponse<TokenExchangeResponse>(request);
}
catch (Exception ex)
{
mLog.ErrorFormat(
"Unable to exchange tokens '{0}': {1}",
endpoint.ToString(), ex.Message);
mLog.DebugFormat(
"StackTrace:{0}{1}",
Environment.NewLine, ex.StackTrace);
return null;
}
}
internal static NewVersionResponse GetLastVersion(Edition plasticEdition)
{
Uri endpoint = mWebApiUris.GetFullUri(
WebApiEndpoints.LastVersion.NewVersion,
"9.0.0.0",
WebApiEndpoints.LastVersion.GetEditionString(plasticEdition),
WebApiEndpoints.LastVersion.GetPlatformString());
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(endpoint);
request.Method = "GET";
request.ContentType = "application/json";
return GetResponse<NewVersionResponse>(request);
}
catch (Exception ex)
{
mLog.ErrorFormat(
"Unable to retrieve new versions from '{0}': {1}",
endpoint.ToString(), ex.Message);
mLog.DebugFormat(
"StackTrace:{0}{1}",
Environment.NewLine, ex.StackTrace);
return null;
}
}
internal static CredentialsResponse GetCredentials(string unityToken)
{
Uri endpoint = mWebApiUris.GetFullUri(
WebApiEndpoints.Authentication.Credentials,
unityToken);
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(endpoint);
request.Method = "GET";
request.ContentType = "application/json";
return GetResponse<CredentialsResponse>(request);
}
catch (Exception ex)
{
return new CredentialsResponse
{
Error = BuildLoggedErrorFields(ex, endpoint)
};
}
}
static TRes GetResponse<TRes>(WebRequest request)
{
using (WebResponse response = request.GetResponse())
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string json = reader.ReadToEnd();
if (string.IsNullOrEmpty(json))
return default(TRes);
return JsonConvert.DeserializeObject<TRes>(json);
}
}
static ErrorResponse.ErrorFields BuildLoggedErrorFields(
Exception ex, Uri endpoint)
{
LogException(ex, endpoint);
return new ErrorResponse.ErrorFields
{
ErrorCode = ErrorCodes.ClientError,
Message = ex.Message
};
}
static void LogException(Exception ex, Uri endpoint)
{
mLog.ErrorFormat(
"There was an error while calling '{0}': {1}",
endpoint.ToString(), ex.Message);
mLog.DebugFormat(
"StackTrace:{0}{1}",
Environment.NewLine, ex.StackTrace);
}
const string IsBetaEnabledEndpoint = "api/unity-package/beta/is-enabled";
const string TokenExchangeEndpoint = "api/oauth/unityid/exchange";
static readonly PlasticWebApiUris mWebApiUris = PlasticWebApiUris.BuildDefault();
static readonly ILog mLog = LogManager.GetLogger("PlasticScmRestApiClient");
}
}
PlasticScmRestApiClientUnity.PlasticSCM.Editor.WebApi