Repository URL to install this package:
Version:
2025.3.14 ▾
|
/*
* Copyright 2016 Game Server Services, Inc. or its affiliates. All Rights
* Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
#if UNITY_2017_1_OR_NEWER
using UnityEngine.Events;
using UnityEngine.Networking;
#if GS2_ENABLE_UNITASK
using Cysharp.Threading.Tasks;
#endif
#else
using System.Web;
using System.Net.Http;
using System.Threading.Tasks;
#endif
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using Gs2.Core;
using Gs2.Core.Model;
using Gs2.Core.Net;
using Gs2.Gs2Quest.Request;
using Gs2.Gs2Quest.Result;
using Gs2.Util.LitJson;
namespace Gs2.Gs2Quest
{
public class Gs2QuestRestClient : AbstractGs2Client
{
#if UNITY_2017_1_OR_NEWER
private readonly CertificateHandler _certificateHandler;
#endif
public static string Endpoint = "quest";
protected Gs2RestSession Gs2RestSession => (Gs2RestSession) Gs2Session;
public Gs2QuestRestClient(Gs2RestSession Gs2RestSession) : base(Gs2RestSession)
{
}
#if UNITY_2017_1_OR_NEWER
public Gs2QuestRestClient(Gs2RestSession gs2RestSession, CertificateHandler certificateHandler) : base(gs2RestSession)
{
_certificateHandler = certificateHandler;
}
#endif
public class DescribeNamespacesTask : Gs2RestSessionTask<DescribeNamespacesRequest, DescribeNamespacesResult>
{
public DescribeNamespacesTask(IGs2Session session, RestSessionRequestFactory factory, DescribeNamespacesRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DescribeNamespacesRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/";
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.PageToken != null) {
sessionRequest.AddQueryString("pageToken", $"{request.PageToken}");
}
if (request.Limit != null) {
sessionRequest.AddQueryString("limit", $"{request.Limit}");
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DescribeNamespaces(
Request.DescribeNamespacesRequest request,
UnityAction<AsyncResult<Result.DescribeNamespacesResult>> callback
)
{
var task = new DescribeNamespacesTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DescribeNamespacesResult>(task.Result, task.Error));
}
public IFuture<Result.DescribeNamespacesResult> DescribeNamespacesFuture(
Request.DescribeNamespacesRequest request
)
{
return new DescribeNamespacesTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DescribeNamespacesResult> DescribeNamespacesAsync(
Request.DescribeNamespacesRequest request
)
{
AsyncResult<Result.DescribeNamespacesResult> result = null;
await DescribeNamespaces(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DescribeNamespacesTask DescribeNamespacesAsync(
Request.DescribeNamespacesRequest request
)
{
return new DescribeNamespacesTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DescribeNamespacesResult> DescribeNamespacesAsync(
Request.DescribeNamespacesRequest request
)
{
var task = new DescribeNamespacesTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class CreateNamespaceTask : Gs2RestSessionTask<CreateNamespaceRequest, CreateNamespaceResult>
{
public CreateNamespaceTask(IGs2Session session, RestSessionRequestFactory factory, CreateNamespaceRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(CreateNamespaceRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/";
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.Name != null)
{
jsonWriter.WritePropertyName("name");
jsonWriter.Write(request.Name);
}
if (request.Description != null)
{
jsonWriter.WritePropertyName("description");
jsonWriter.Write(request.Description);
}
if (request.TransactionSetting != null)
{
jsonWriter.WritePropertyName("transactionSetting");
request.TransactionSetting.WriteJson(jsonWriter);
}
if (request.StartQuestScript != null)
{
jsonWriter.WritePropertyName("startQuestScript");
request.StartQuestScript.WriteJson(jsonWriter);
}
if (request.CompleteQuestScript != null)
{
jsonWriter.WritePropertyName("completeQuestScript");
request.CompleteQuestScript.WriteJson(jsonWriter);
}
if (request.FailedQuestScript != null)
{
jsonWriter.WritePropertyName("failedQuestScript");
request.FailedQuestScript.WriteJson(jsonWriter);
}
if (request.LogSetting != null)
{
jsonWriter.WritePropertyName("logSetting");
request.LogSetting.WriteJson(jsonWriter);
}
if (request.QueueNamespaceId != null)
{
jsonWriter.WritePropertyName("queueNamespaceId");
jsonWriter.Write(request.QueueNamespaceId);
}
if (request.KeyId != null)
{
jsonWriter.WritePropertyName("keyId");
jsonWriter.Write(request.KeyId);
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator CreateNamespace(
Request.CreateNamespaceRequest request,
UnityAction<AsyncResult<Result.CreateNamespaceResult>> callback
)
{
var task = new CreateNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.CreateNamespaceResult>(task.Result, task.Error));
}
public IFuture<Result.CreateNamespaceResult> CreateNamespaceFuture(
Request.CreateNamespaceRequest request
)
{
return new CreateNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.CreateNamespaceResult> CreateNamespaceAsync(
Request.CreateNamespaceRequest request
)
{
AsyncResult<Result.CreateNamespaceResult> result = null;
await CreateNamespace(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public CreateNamespaceTask CreateNamespaceAsync(
Request.CreateNamespaceRequest request
)
{
return new CreateNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.CreateNamespaceResult> CreateNamespaceAsync(
Request.CreateNamespaceRequest request
)
{
var task = new CreateNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class GetNamespaceStatusTask : Gs2RestSessionTask<GetNamespaceStatusRequest, GetNamespaceStatusResult>
{
public GetNamespaceStatusTask(IGs2Session session, RestSessionRequestFactory factory, GetNamespaceStatusRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(GetNamespaceStatusRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/status";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator GetNamespaceStatus(
Request.GetNamespaceStatusRequest request,
UnityAction<AsyncResult<Result.GetNamespaceStatusResult>> callback
)
{
var task = new GetNamespaceStatusTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.GetNamespaceStatusResult>(task.Result, task.Error));
}
public IFuture<Result.GetNamespaceStatusResult> GetNamespaceStatusFuture(
Request.GetNamespaceStatusRequest request
)
{
return new GetNamespaceStatusTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.GetNamespaceStatusResult> GetNamespaceStatusAsync(
Request.GetNamespaceStatusRequest request
)
{
AsyncResult<Result.GetNamespaceStatusResult> result = null;
await GetNamespaceStatus(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public GetNamespaceStatusTask GetNamespaceStatusAsync(
Request.GetNamespaceStatusRequest request
)
{
return new GetNamespaceStatusTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.GetNamespaceStatusResult> GetNamespaceStatusAsync(
Request.GetNamespaceStatusRequest request
)
{
var task = new GetNamespaceStatusTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class GetNamespaceTask : Gs2RestSessionTask<GetNamespaceRequest, GetNamespaceResult>
{
public GetNamespaceTask(IGs2Session session, RestSessionRequestFactory factory, GetNamespaceRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(GetNamespaceRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator GetNamespace(
Request.GetNamespaceRequest request,
UnityAction<AsyncResult<Result.GetNamespaceResult>> callback
)
{
var task = new GetNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.GetNamespaceResult>(task.Result, task.Error));
}
public IFuture<Result.GetNamespaceResult> GetNamespaceFuture(
Request.GetNamespaceRequest request
)
{
return new GetNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.GetNamespaceResult> GetNamespaceAsync(
Request.GetNamespaceRequest request
)
{
AsyncResult<Result.GetNamespaceResult> result = null;
await GetNamespace(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public GetNamespaceTask GetNamespaceAsync(
Request.GetNamespaceRequest request
)
{
return new GetNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.GetNamespaceResult> GetNamespaceAsync(
Request.GetNamespaceRequest request
)
{
var task = new GetNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class UpdateNamespaceTask : Gs2RestSessionTask<UpdateNamespaceRequest, UpdateNamespaceResult>
{
public UpdateNamespaceTask(IGs2Session session, RestSessionRequestFactory factory, UpdateNamespaceRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(UpdateNamespaceRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Put(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.Description != null)
{
jsonWriter.WritePropertyName("description");
jsonWriter.Write(request.Description);
}
if (request.TransactionSetting != null)
{
jsonWriter.WritePropertyName("transactionSetting");
request.TransactionSetting.WriteJson(jsonWriter);
}
if (request.StartQuestScript != null)
{
jsonWriter.WritePropertyName("startQuestScript");
request.StartQuestScript.WriteJson(jsonWriter);
}
if (request.CompleteQuestScript != null)
{
jsonWriter.WritePropertyName("completeQuestScript");
request.CompleteQuestScript.WriteJson(jsonWriter);
}
if (request.FailedQuestScript != null)
{
jsonWriter.WritePropertyName("failedQuestScript");
request.FailedQuestScript.WriteJson(jsonWriter);
}
if (request.LogSetting != null)
{
jsonWriter.WritePropertyName("logSetting");
request.LogSetting.WriteJson(jsonWriter);
}
if (request.QueueNamespaceId != null)
{
jsonWriter.WritePropertyName("queueNamespaceId");
jsonWriter.Write(request.QueueNamespaceId);
}
if (request.KeyId != null)
{
jsonWriter.WritePropertyName("keyId");
jsonWriter.Write(request.KeyId);
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator UpdateNamespace(
Request.UpdateNamespaceRequest request,
UnityAction<AsyncResult<Result.UpdateNamespaceResult>> callback
)
{
var task = new UpdateNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.UpdateNamespaceResult>(task.Result, task.Error));
}
public IFuture<Result.UpdateNamespaceResult> UpdateNamespaceFuture(
Request.UpdateNamespaceRequest request
)
{
return new UpdateNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.UpdateNamespaceResult> UpdateNamespaceAsync(
Request.UpdateNamespaceRequest request
)
{
AsyncResult<Result.UpdateNamespaceResult> result = null;
await UpdateNamespace(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public UpdateNamespaceTask UpdateNamespaceAsync(
Request.UpdateNamespaceRequest request
)
{
return new UpdateNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.UpdateNamespaceResult> UpdateNamespaceAsync(
Request.UpdateNamespaceRequest request
)
{
var task = new UpdateNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DeleteNamespaceTask : Gs2RestSessionTask<DeleteNamespaceRequest, DeleteNamespaceResult>
{
public DeleteNamespaceTask(IGs2Session session, RestSessionRequestFactory factory, DeleteNamespaceRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DeleteNamespaceRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Delete(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DeleteNamespace(
Request.DeleteNamespaceRequest request,
UnityAction<AsyncResult<Result.DeleteNamespaceResult>> callback
)
{
var task = new DeleteNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DeleteNamespaceResult>(task.Result, task.Error));
}
public IFuture<Result.DeleteNamespaceResult> DeleteNamespaceFuture(
Request.DeleteNamespaceRequest request
)
{
return new DeleteNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DeleteNamespaceResult> DeleteNamespaceAsync(
Request.DeleteNamespaceRequest request
)
{
AsyncResult<Result.DeleteNamespaceResult> result = null;
await DeleteNamespace(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DeleteNamespaceTask DeleteNamespaceAsync(
Request.DeleteNamespaceRequest request
)
{
return new DeleteNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DeleteNamespaceResult> DeleteNamespaceAsync(
Request.DeleteNamespaceRequest request
)
{
var task = new DeleteNamespaceTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DumpUserDataByUserIdTask : Gs2RestSessionTask<DumpUserDataByUserIdRequest, DumpUserDataByUserIdResult>
{
public DumpUserDataByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, DumpUserDataByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DumpUserDataByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/system/dump/user/{userId}";
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DumpUserDataByUserId(
Request.DumpUserDataByUserIdRequest request,
UnityAction<AsyncResult<Result.DumpUserDataByUserIdResult>> callback
)
{
var task = new DumpUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DumpUserDataByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.DumpUserDataByUserIdResult> DumpUserDataByUserIdFuture(
Request.DumpUserDataByUserIdRequest request
)
{
return new DumpUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DumpUserDataByUserIdResult> DumpUserDataByUserIdAsync(
Request.DumpUserDataByUserIdRequest request
)
{
AsyncResult<Result.DumpUserDataByUserIdResult> result = null;
await DumpUserDataByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DumpUserDataByUserIdTask DumpUserDataByUserIdAsync(
Request.DumpUserDataByUserIdRequest request
)
{
return new DumpUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DumpUserDataByUserIdResult> DumpUserDataByUserIdAsync(
Request.DumpUserDataByUserIdRequest request
)
{
var task = new DumpUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class CheckDumpUserDataByUserIdTask : Gs2RestSessionTask<CheckDumpUserDataByUserIdRequest, CheckDumpUserDataByUserIdResult>
{
public CheckDumpUserDataByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, CheckDumpUserDataByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(CheckDumpUserDataByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/system/dump/user/{userId}";
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator CheckDumpUserDataByUserId(
Request.CheckDumpUserDataByUserIdRequest request,
UnityAction<AsyncResult<Result.CheckDumpUserDataByUserIdResult>> callback
)
{
var task = new CheckDumpUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.CheckDumpUserDataByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.CheckDumpUserDataByUserIdResult> CheckDumpUserDataByUserIdFuture(
Request.CheckDumpUserDataByUserIdRequest request
)
{
return new CheckDumpUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.CheckDumpUserDataByUserIdResult> CheckDumpUserDataByUserIdAsync(
Request.CheckDumpUserDataByUserIdRequest request
)
{
AsyncResult<Result.CheckDumpUserDataByUserIdResult> result = null;
await CheckDumpUserDataByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public CheckDumpUserDataByUserIdTask CheckDumpUserDataByUserIdAsync(
Request.CheckDumpUserDataByUserIdRequest request
)
{
return new CheckDumpUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.CheckDumpUserDataByUserIdResult> CheckDumpUserDataByUserIdAsync(
Request.CheckDumpUserDataByUserIdRequest request
)
{
var task = new CheckDumpUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class CleanUserDataByUserIdTask : Gs2RestSessionTask<CleanUserDataByUserIdRequest, CleanUserDataByUserIdResult>
{
public CleanUserDataByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, CleanUserDataByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(CleanUserDataByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/system/clean/user/{userId}";
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator CleanUserDataByUserId(
Request.CleanUserDataByUserIdRequest request,
UnityAction<AsyncResult<Result.CleanUserDataByUserIdResult>> callback
)
{
var task = new CleanUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.CleanUserDataByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.CleanUserDataByUserIdResult> CleanUserDataByUserIdFuture(
Request.CleanUserDataByUserIdRequest request
)
{
return new CleanUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.CleanUserDataByUserIdResult> CleanUserDataByUserIdAsync(
Request.CleanUserDataByUserIdRequest request
)
{
AsyncResult<Result.CleanUserDataByUserIdResult> result = null;
await CleanUserDataByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public CleanUserDataByUserIdTask CleanUserDataByUserIdAsync(
Request.CleanUserDataByUserIdRequest request
)
{
return new CleanUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.CleanUserDataByUserIdResult> CleanUserDataByUserIdAsync(
Request.CleanUserDataByUserIdRequest request
)
{
var task = new CleanUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class CheckCleanUserDataByUserIdTask : Gs2RestSessionTask<CheckCleanUserDataByUserIdRequest, CheckCleanUserDataByUserIdResult>
{
public CheckCleanUserDataByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, CheckCleanUserDataByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(CheckCleanUserDataByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/system/clean/user/{userId}";
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator CheckCleanUserDataByUserId(
Request.CheckCleanUserDataByUserIdRequest request,
UnityAction<AsyncResult<Result.CheckCleanUserDataByUserIdResult>> callback
)
{
var task = new CheckCleanUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.CheckCleanUserDataByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.CheckCleanUserDataByUserIdResult> CheckCleanUserDataByUserIdFuture(
Request.CheckCleanUserDataByUserIdRequest request
)
{
return new CheckCleanUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.CheckCleanUserDataByUserIdResult> CheckCleanUserDataByUserIdAsync(
Request.CheckCleanUserDataByUserIdRequest request
)
{
AsyncResult<Result.CheckCleanUserDataByUserIdResult> result = null;
await CheckCleanUserDataByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public CheckCleanUserDataByUserIdTask CheckCleanUserDataByUserIdAsync(
Request.CheckCleanUserDataByUserIdRequest request
)
{
return new CheckCleanUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.CheckCleanUserDataByUserIdResult> CheckCleanUserDataByUserIdAsync(
Request.CheckCleanUserDataByUserIdRequest request
)
{
var task = new CheckCleanUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class PrepareImportUserDataByUserIdTask : Gs2RestSessionTask<PrepareImportUserDataByUserIdRequest, PrepareImportUserDataByUserIdResult>
{
public PrepareImportUserDataByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, PrepareImportUserDataByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(PrepareImportUserDataByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/system/import/user/{userId}/prepare";
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator PrepareImportUserDataByUserId(
Request.PrepareImportUserDataByUserIdRequest request,
UnityAction<AsyncResult<Result.PrepareImportUserDataByUserIdResult>> callback
)
{
var task = new PrepareImportUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.PrepareImportUserDataByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.PrepareImportUserDataByUserIdResult> PrepareImportUserDataByUserIdFuture(
Request.PrepareImportUserDataByUserIdRequest request
)
{
return new PrepareImportUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.PrepareImportUserDataByUserIdResult> PrepareImportUserDataByUserIdAsync(
Request.PrepareImportUserDataByUserIdRequest request
)
{
AsyncResult<Result.PrepareImportUserDataByUserIdResult> result = null;
await PrepareImportUserDataByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public PrepareImportUserDataByUserIdTask PrepareImportUserDataByUserIdAsync(
Request.PrepareImportUserDataByUserIdRequest request
)
{
return new PrepareImportUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.PrepareImportUserDataByUserIdResult> PrepareImportUserDataByUserIdAsync(
Request.PrepareImportUserDataByUserIdRequest request
)
{
var task = new PrepareImportUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class ImportUserDataByUserIdTask : Gs2RestSessionTask<ImportUserDataByUserIdRequest, ImportUserDataByUserIdResult>
{
public ImportUserDataByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, ImportUserDataByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(ImportUserDataByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/system/import/user/{userId}";
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.UploadToken != null)
{
jsonWriter.WritePropertyName("uploadToken");
jsonWriter.Write(request.UploadToken);
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator ImportUserDataByUserId(
Request.ImportUserDataByUserIdRequest request,
UnityAction<AsyncResult<Result.ImportUserDataByUserIdResult>> callback
)
{
var task = new ImportUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.ImportUserDataByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.ImportUserDataByUserIdResult> ImportUserDataByUserIdFuture(
Request.ImportUserDataByUserIdRequest request
)
{
return new ImportUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.ImportUserDataByUserIdResult> ImportUserDataByUserIdAsync(
Request.ImportUserDataByUserIdRequest request
)
{
AsyncResult<Result.ImportUserDataByUserIdResult> result = null;
await ImportUserDataByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public ImportUserDataByUserIdTask ImportUserDataByUserIdAsync(
Request.ImportUserDataByUserIdRequest request
)
{
return new ImportUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.ImportUserDataByUserIdResult> ImportUserDataByUserIdAsync(
Request.ImportUserDataByUserIdRequest request
)
{
var task = new ImportUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class CheckImportUserDataByUserIdTask : Gs2RestSessionTask<CheckImportUserDataByUserIdRequest, CheckImportUserDataByUserIdResult>
{
public CheckImportUserDataByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, CheckImportUserDataByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(CheckImportUserDataByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/system/import/user/{userId}/{uploadToken}";
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
url = url.Replace("{uploadToken}", !string.IsNullOrEmpty(request.UploadToken) ? request.UploadToken.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator CheckImportUserDataByUserId(
Request.CheckImportUserDataByUserIdRequest request,
UnityAction<AsyncResult<Result.CheckImportUserDataByUserIdResult>> callback
)
{
var task = new CheckImportUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.CheckImportUserDataByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.CheckImportUserDataByUserIdResult> CheckImportUserDataByUserIdFuture(
Request.CheckImportUserDataByUserIdRequest request
)
{
return new CheckImportUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.CheckImportUserDataByUserIdResult> CheckImportUserDataByUserIdAsync(
Request.CheckImportUserDataByUserIdRequest request
)
{
AsyncResult<Result.CheckImportUserDataByUserIdResult> result = null;
await CheckImportUserDataByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public CheckImportUserDataByUserIdTask CheckImportUserDataByUserIdAsync(
Request.CheckImportUserDataByUserIdRequest request
)
{
return new CheckImportUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.CheckImportUserDataByUserIdResult> CheckImportUserDataByUserIdAsync(
Request.CheckImportUserDataByUserIdRequest request
)
{
var task = new CheckImportUserDataByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DescribeQuestGroupModelMastersTask : Gs2RestSessionTask<DescribeQuestGroupModelMastersRequest, DescribeQuestGroupModelMastersResult>
{
public DescribeQuestGroupModelMastersTask(IGs2Session session, RestSessionRequestFactory factory, DescribeQuestGroupModelMastersRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DescribeQuestGroupModelMastersRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/group";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.PageToken != null) {
sessionRequest.AddQueryString("pageToken", $"{request.PageToken}");
}
if (request.Limit != null) {
sessionRequest.AddQueryString("limit", $"{request.Limit}");
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DescribeQuestGroupModelMasters(
Request.DescribeQuestGroupModelMastersRequest request,
UnityAction<AsyncResult<Result.DescribeQuestGroupModelMastersResult>> callback
)
{
var task = new DescribeQuestGroupModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DescribeQuestGroupModelMastersResult>(task.Result, task.Error));
}
public IFuture<Result.DescribeQuestGroupModelMastersResult> DescribeQuestGroupModelMastersFuture(
Request.DescribeQuestGroupModelMastersRequest request
)
{
return new DescribeQuestGroupModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DescribeQuestGroupModelMastersResult> DescribeQuestGroupModelMastersAsync(
Request.DescribeQuestGroupModelMastersRequest request
)
{
AsyncResult<Result.DescribeQuestGroupModelMastersResult> result = null;
await DescribeQuestGroupModelMasters(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DescribeQuestGroupModelMastersTask DescribeQuestGroupModelMastersAsync(
Request.DescribeQuestGroupModelMastersRequest request
)
{
return new DescribeQuestGroupModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DescribeQuestGroupModelMastersResult> DescribeQuestGroupModelMastersAsync(
Request.DescribeQuestGroupModelMastersRequest request
)
{
var task = new DescribeQuestGroupModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class CreateQuestGroupModelMasterTask : Gs2RestSessionTask<CreateQuestGroupModelMasterRequest, CreateQuestGroupModelMasterResult>
{
public CreateQuestGroupModelMasterTask(IGs2Session session, RestSessionRequestFactory factory, CreateQuestGroupModelMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(CreateQuestGroupModelMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/group";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.Name != null)
{
jsonWriter.WritePropertyName("name");
jsonWriter.Write(request.Name);
}
if (request.Description != null)
{
jsonWriter.WritePropertyName("description");
jsonWriter.Write(request.Description);
}
if (request.Metadata != null)
{
jsonWriter.WritePropertyName("metadata");
jsonWriter.Write(request.Metadata);
}
if (request.ChallengePeriodEventId != null)
{
jsonWriter.WritePropertyName("challengePeriodEventId");
jsonWriter.Write(request.ChallengePeriodEventId);
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator CreateQuestGroupModelMaster(
Request.CreateQuestGroupModelMasterRequest request,
UnityAction<AsyncResult<Result.CreateQuestGroupModelMasterResult>> callback
)
{
var task = new CreateQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.CreateQuestGroupModelMasterResult>(task.Result, task.Error));
}
public IFuture<Result.CreateQuestGroupModelMasterResult> CreateQuestGroupModelMasterFuture(
Request.CreateQuestGroupModelMasterRequest request
)
{
return new CreateQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.CreateQuestGroupModelMasterResult> CreateQuestGroupModelMasterAsync(
Request.CreateQuestGroupModelMasterRequest request
)
{
AsyncResult<Result.CreateQuestGroupModelMasterResult> result = null;
await CreateQuestGroupModelMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public CreateQuestGroupModelMasterTask CreateQuestGroupModelMasterAsync(
Request.CreateQuestGroupModelMasterRequest request
)
{
return new CreateQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.CreateQuestGroupModelMasterResult> CreateQuestGroupModelMasterAsync(
Request.CreateQuestGroupModelMasterRequest request
)
{
var task = new CreateQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class GetQuestGroupModelMasterTask : Gs2RestSessionTask<GetQuestGroupModelMasterRequest, GetQuestGroupModelMasterResult>
{
public GetQuestGroupModelMasterTask(IGs2Session session, RestSessionRequestFactory factory, GetQuestGroupModelMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(GetQuestGroupModelMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/group/{questGroupName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator GetQuestGroupModelMaster(
Request.GetQuestGroupModelMasterRequest request,
UnityAction<AsyncResult<Result.GetQuestGroupModelMasterResult>> callback
)
{
var task = new GetQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.GetQuestGroupModelMasterResult>(task.Result, task.Error));
}
public IFuture<Result.GetQuestGroupModelMasterResult> GetQuestGroupModelMasterFuture(
Request.GetQuestGroupModelMasterRequest request
)
{
return new GetQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.GetQuestGroupModelMasterResult> GetQuestGroupModelMasterAsync(
Request.GetQuestGroupModelMasterRequest request
)
{
AsyncResult<Result.GetQuestGroupModelMasterResult> result = null;
await GetQuestGroupModelMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public GetQuestGroupModelMasterTask GetQuestGroupModelMasterAsync(
Request.GetQuestGroupModelMasterRequest request
)
{
return new GetQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.GetQuestGroupModelMasterResult> GetQuestGroupModelMasterAsync(
Request.GetQuestGroupModelMasterRequest request
)
{
var task = new GetQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class UpdateQuestGroupModelMasterTask : Gs2RestSessionTask<UpdateQuestGroupModelMasterRequest, UpdateQuestGroupModelMasterResult>
{
public UpdateQuestGroupModelMasterTask(IGs2Session session, RestSessionRequestFactory factory, UpdateQuestGroupModelMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(UpdateQuestGroupModelMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/group/{questGroupName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
var sessionRequest = Factory.Put(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.Description != null)
{
jsonWriter.WritePropertyName("description");
jsonWriter.Write(request.Description);
}
if (request.Metadata != null)
{
jsonWriter.WritePropertyName("metadata");
jsonWriter.Write(request.Metadata);
}
if (request.ChallengePeriodEventId != null)
{
jsonWriter.WritePropertyName("challengePeriodEventId");
jsonWriter.Write(request.ChallengePeriodEventId);
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator UpdateQuestGroupModelMaster(
Request.UpdateQuestGroupModelMasterRequest request,
UnityAction<AsyncResult<Result.UpdateQuestGroupModelMasterResult>> callback
)
{
var task = new UpdateQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.UpdateQuestGroupModelMasterResult>(task.Result, task.Error));
}
public IFuture<Result.UpdateQuestGroupModelMasterResult> UpdateQuestGroupModelMasterFuture(
Request.UpdateQuestGroupModelMasterRequest request
)
{
return new UpdateQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.UpdateQuestGroupModelMasterResult> UpdateQuestGroupModelMasterAsync(
Request.UpdateQuestGroupModelMasterRequest request
)
{
AsyncResult<Result.UpdateQuestGroupModelMasterResult> result = null;
await UpdateQuestGroupModelMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public UpdateQuestGroupModelMasterTask UpdateQuestGroupModelMasterAsync(
Request.UpdateQuestGroupModelMasterRequest request
)
{
return new UpdateQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.UpdateQuestGroupModelMasterResult> UpdateQuestGroupModelMasterAsync(
Request.UpdateQuestGroupModelMasterRequest request
)
{
var task = new UpdateQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DeleteQuestGroupModelMasterTask : Gs2RestSessionTask<DeleteQuestGroupModelMasterRequest, DeleteQuestGroupModelMasterResult>
{
public DeleteQuestGroupModelMasterTask(IGs2Session session, RestSessionRequestFactory factory, DeleteQuestGroupModelMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DeleteQuestGroupModelMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/group/{questGroupName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
var sessionRequest = Factory.Delete(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DeleteQuestGroupModelMaster(
Request.DeleteQuestGroupModelMasterRequest request,
UnityAction<AsyncResult<Result.DeleteQuestGroupModelMasterResult>> callback
)
{
var task = new DeleteQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DeleteQuestGroupModelMasterResult>(task.Result, task.Error));
}
public IFuture<Result.DeleteQuestGroupModelMasterResult> DeleteQuestGroupModelMasterFuture(
Request.DeleteQuestGroupModelMasterRequest request
)
{
return new DeleteQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DeleteQuestGroupModelMasterResult> DeleteQuestGroupModelMasterAsync(
Request.DeleteQuestGroupModelMasterRequest request
)
{
AsyncResult<Result.DeleteQuestGroupModelMasterResult> result = null;
await DeleteQuestGroupModelMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DeleteQuestGroupModelMasterTask DeleteQuestGroupModelMasterAsync(
Request.DeleteQuestGroupModelMasterRequest request
)
{
return new DeleteQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DeleteQuestGroupModelMasterResult> DeleteQuestGroupModelMasterAsync(
Request.DeleteQuestGroupModelMasterRequest request
)
{
var task = new DeleteQuestGroupModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DescribeQuestModelMastersTask : Gs2RestSessionTask<DescribeQuestModelMastersRequest, DescribeQuestModelMastersResult>
{
public DescribeQuestModelMastersTask(IGs2Session session, RestSessionRequestFactory factory, DescribeQuestModelMastersRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DescribeQuestModelMastersRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/group/{questGroupName}/quest";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.PageToken != null) {
sessionRequest.AddQueryString("pageToken", $"{request.PageToken}");
}
if (request.Limit != null) {
sessionRequest.AddQueryString("limit", $"{request.Limit}");
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DescribeQuestModelMasters(
Request.DescribeQuestModelMastersRequest request,
UnityAction<AsyncResult<Result.DescribeQuestModelMastersResult>> callback
)
{
var task = new DescribeQuestModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DescribeQuestModelMastersResult>(task.Result, task.Error));
}
public IFuture<Result.DescribeQuestModelMastersResult> DescribeQuestModelMastersFuture(
Request.DescribeQuestModelMastersRequest request
)
{
return new DescribeQuestModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DescribeQuestModelMastersResult> DescribeQuestModelMastersAsync(
Request.DescribeQuestModelMastersRequest request
)
{
AsyncResult<Result.DescribeQuestModelMastersResult> result = null;
await DescribeQuestModelMasters(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DescribeQuestModelMastersTask DescribeQuestModelMastersAsync(
Request.DescribeQuestModelMastersRequest request
)
{
return new DescribeQuestModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DescribeQuestModelMastersResult> DescribeQuestModelMastersAsync(
Request.DescribeQuestModelMastersRequest request
)
{
var task = new DescribeQuestModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class CreateQuestModelMasterTask : Gs2RestSessionTask<CreateQuestModelMasterRequest, CreateQuestModelMasterResult>
{
public CreateQuestModelMasterTask(IGs2Session session, RestSessionRequestFactory factory, CreateQuestModelMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(CreateQuestModelMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/group/{questGroupName}/quest";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.Name != null)
{
jsonWriter.WritePropertyName("name");
jsonWriter.Write(request.Name);
}
if (request.Description != null)
{
jsonWriter.WritePropertyName("description");
jsonWriter.Write(request.Description);
}
if (request.Metadata != null)
{
jsonWriter.WritePropertyName("metadata");
jsonWriter.Write(request.Metadata);
}
if (request.Contents != null)
{
jsonWriter.WritePropertyName("contents");
jsonWriter.WriteArrayStart();
foreach(var item in request.Contents)
{
item.WriteJson(jsonWriter);
}
jsonWriter.WriteArrayEnd();
}
if (request.ChallengePeriodEventId != null)
{
jsonWriter.WritePropertyName("challengePeriodEventId");
jsonWriter.Write(request.ChallengePeriodEventId);
}
if (request.FirstCompleteAcquireActions != null)
{
jsonWriter.WritePropertyName("firstCompleteAcquireActions");
jsonWriter.WriteArrayStart();
foreach(var item in request.FirstCompleteAcquireActions)
{
item.WriteJson(jsonWriter);
}
jsonWriter.WriteArrayEnd();
}
if (request.VerifyActions != null)
{
jsonWriter.WritePropertyName("verifyActions");
jsonWriter.WriteArrayStart();
foreach(var item in request.VerifyActions)
{
item.WriteJson(jsonWriter);
}
jsonWriter.WriteArrayEnd();
}
if (request.ConsumeActions != null)
{
jsonWriter.WritePropertyName("consumeActions");
jsonWriter.WriteArrayStart();
foreach(var item in request.ConsumeActions)
{
item.WriteJson(jsonWriter);
}
jsonWriter.WriteArrayEnd();
}
if (request.FailedAcquireActions != null)
{
jsonWriter.WritePropertyName("failedAcquireActions");
jsonWriter.WriteArrayStart();
foreach(var item in request.FailedAcquireActions)
{
item.WriteJson(jsonWriter);
}
jsonWriter.WriteArrayEnd();
}
if (request.PremiseQuestNames != null)
{
jsonWriter.WritePropertyName("premiseQuestNames");
jsonWriter.WriteArrayStart();
foreach(var item in request.PremiseQuestNames)
{
jsonWriter.Write(item);
}
jsonWriter.WriteArrayEnd();
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator CreateQuestModelMaster(
Request.CreateQuestModelMasterRequest request,
UnityAction<AsyncResult<Result.CreateQuestModelMasterResult>> callback
)
{
var task = new CreateQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.CreateQuestModelMasterResult>(task.Result, task.Error));
}
public IFuture<Result.CreateQuestModelMasterResult> CreateQuestModelMasterFuture(
Request.CreateQuestModelMasterRequest request
)
{
return new CreateQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.CreateQuestModelMasterResult> CreateQuestModelMasterAsync(
Request.CreateQuestModelMasterRequest request
)
{
AsyncResult<Result.CreateQuestModelMasterResult> result = null;
await CreateQuestModelMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public CreateQuestModelMasterTask CreateQuestModelMasterAsync(
Request.CreateQuestModelMasterRequest request
)
{
return new CreateQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.CreateQuestModelMasterResult> CreateQuestModelMasterAsync(
Request.CreateQuestModelMasterRequest request
)
{
var task = new CreateQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class GetQuestModelMasterTask : Gs2RestSessionTask<GetQuestModelMasterRequest, GetQuestModelMasterResult>
{
public GetQuestModelMasterTask(IGs2Session session, RestSessionRequestFactory factory, GetQuestModelMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(GetQuestModelMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/group/{questGroupName}/quest/{questName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
url = url.Replace("{questName}", !string.IsNullOrEmpty(request.QuestName) ? request.QuestName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator GetQuestModelMaster(
Request.GetQuestModelMasterRequest request,
UnityAction<AsyncResult<Result.GetQuestModelMasterResult>> callback
)
{
var task = new GetQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.GetQuestModelMasterResult>(task.Result, task.Error));
}
public IFuture<Result.GetQuestModelMasterResult> GetQuestModelMasterFuture(
Request.GetQuestModelMasterRequest request
)
{
return new GetQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.GetQuestModelMasterResult> GetQuestModelMasterAsync(
Request.GetQuestModelMasterRequest request
)
{
AsyncResult<Result.GetQuestModelMasterResult> result = null;
await GetQuestModelMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public GetQuestModelMasterTask GetQuestModelMasterAsync(
Request.GetQuestModelMasterRequest request
)
{
return new GetQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.GetQuestModelMasterResult> GetQuestModelMasterAsync(
Request.GetQuestModelMasterRequest request
)
{
var task = new GetQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class UpdateQuestModelMasterTask : Gs2RestSessionTask<UpdateQuestModelMasterRequest, UpdateQuestModelMasterResult>
{
public UpdateQuestModelMasterTask(IGs2Session session, RestSessionRequestFactory factory, UpdateQuestModelMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(UpdateQuestModelMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/group/{questGroupName}/quest/{questName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
url = url.Replace("{questName}", !string.IsNullOrEmpty(request.QuestName) ? request.QuestName.ToString() : "null");
var sessionRequest = Factory.Put(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.Description != null)
{
jsonWriter.WritePropertyName("description");
jsonWriter.Write(request.Description);
}
if (request.Metadata != null)
{
jsonWriter.WritePropertyName("metadata");
jsonWriter.Write(request.Metadata);
}
if (request.Contents != null)
{
jsonWriter.WritePropertyName("contents");
jsonWriter.WriteArrayStart();
foreach(var item in request.Contents)
{
item.WriteJson(jsonWriter);
}
jsonWriter.WriteArrayEnd();
}
if (request.ChallengePeriodEventId != null)
{
jsonWriter.WritePropertyName("challengePeriodEventId");
jsonWriter.Write(request.ChallengePeriodEventId);
}
if (request.FirstCompleteAcquireActions != null)
{
jsonWriter.WritePropertyName("firstCompleteAcquireActions");
jsonWriter.WriteArrayStart();
foreach(var item in request.FirstCompleteAcquireActions)
{
item.WriteJson(jsonWriter);
}
jsonWriter.WriteArrayEnd();
}
if (request.VerifyActions != null)
{
jsonWriter.WritePropertyName("verifyActions");
jsonWriter.WriteArrayStart();
foreach(var item in request.VerifyActions)
{
item.WriteJson(jsonWriter);
}
jsonWriter.WriteArrayEnd();
}
if (request.ConsumeActions != null)
{
jsonWriter.WritePropertyName("consumeActions");
jsonWriter.WriteArrayStart();
foreach(var item in request.ConsumeActions)
{
item.WriteJson(jsonWriter);
}
jsonWriter.WriteArrayEnd();
}
if (request.FailedAcquireActions != null)
{
jsonWriter.WritePropertyName("failedAcquireActions");
jsonWriter.WriteArrayStart();
foreach(var item in request.FailedAcquireActions)
{
item.WriteJson(jsonWriter);
}
jsonWriter.WriteArrayEnd();
}
if (request.PremiseQuestNames != null)
{
jsonWriter.WritePropertyName("premiseQuestNames");
jsonWriter.WriteArrayStart();
foreach(var item in request.PremiseQuestNames)
{
jsonWriter.Write(item);
}
jsonWriter.WriteArrayEnd();
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator UpdateQuestModelMaster(
Request.UpdateQuestModelMasterRequest request,
UnityAction<AsyncResult<Result.UpdateQuestModelMasterResult>> callback
)
{
var task = new UpdateQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.UpdateQuestModelMasterResult>(task.Result, task.Error));
}
public IFuture<Result.UpdateQuestModelMasterResult> UpdateQuestModelMasterFuture(
Request.UpdateQuestModelMasterRequest request
)
{
return new UpdateQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.UpdateQuestModelMasterResult> UpdateQuestModelMasterAsync(
Request.UpdateQuestModelMasterRequest request
)
{
AsyncResult<Result.UpdateQuestModelMasterResult> result = null;
await UpdateQuestModelMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public UpdateQuestModelMasterTask UpdateQuestModelMasterAsync(
Request.UpdateQuestModelMasterRequest request
)
{
return new UpdateQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.UpdateQuestModelMasterResult> UpdateQuestModelMasterAsync(
Request.UpdateQuestModelMasterRequest request
)
{
var task = new UpdateQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DeleteQuestModelMasterTask : Gs2RestSessionTask<DeleteQuestModelMasterRequest, DeleteQuestModelMasterResult>
{
public DeleteQuestModelMasterTask(IGs2Session session, RestSessionRequestFactory factory, DeleteQuestModelMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DeleteQuestModelMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/group/{questGroupName}/quest/{questName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
url = url.Replace("{questName}", !string.IsNullOrEmpty(request.QuestName) ? request.QuestName.ToString() : "null");
var sessionRequest = Factory.Delete(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DeleteQuestModelMaster(
Request.DeleteQuestModelMasterRequest request,
UnityAction<AsyncResult<Result.DeleteQuestModelMasterResult>> callback
)
{
var task = new DeleteQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DeleteQuestModelMasterResult>(task.Result, task.Error));
}
public IFuture<Result.DeleteQuestModelMasterResult> DeleteQuestModelMasterFuture(
Request.DeleteQuestModelMasterRequest request
)
{
return new DeleteQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DeleteQuestModelMasterResult> DeleteQuestModelMasterAsync(
Request.DeleteQuestModelMasterRequest request
)
{
AsyncResult<Result.DeleteQuestModelMasterResult> result = null;
await DeleteQuestModelMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DeleteQuestModelMasterTask DeleteQuestModelMasterAsync(
Request.DeleteQuestModelMasterRequest request
)
{
return new DeleteQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DeleteQuestModelMasterResult> DeleteQuestModelMasterAsync(
Request.DeleteQuestModelMasterRequest request
)
{
var task = new DeleteQuestModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class ExportMasterTask : Gs2RestSessionTask<ExportMasterRequest, ExportMasterResult>
{
public ExportMasterTask(IGs2Session session, RestSessionRequestFactory factory, ExportMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(ExportMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/export";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator ExportMaster(
Request.ExportMasterRequest request,
UnityAction<AsyncResult<Result.ExportMasterResult>> callback
)
{
var task = new ExportMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.ExportMasterResult>(task.Result, task.Error));
}
public IFuture<Result.ExportMasterResult> ExportMasterFuture(
Request.ExportMasterRequest request
)
{
return new ExportMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.ExportMasterResult> ExportMasterAsync(
Request.ExportMasterRequest request
)
{
AsyncResult<Result.ExportMasterResult> result = null;
await ExportMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public ExportMasterTask ExportMasterAsync(
Request.ExportMasterRequest request
)
{
return new ExportMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.ExportMasterResult> ExportMasterAsync(
Request.ExportMasterRequest request
)
{
var task = new ExportMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class GetCurrentQuestMasterTask : Gs2RestSessionTask<GetCurrentQuestMasterRequest, GetCurrentQuestMasterResult>
{
public GetCurrentQuestMasterTask(IGs2Session session, RestSessionRequestFactory factory, GetCurrentQuestMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(GetCurrentQuestMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator GetCurrentQuestMaster(
Request.GetCurrentQuestMasterRequest request,
UnityAction<AsyncResult<Result.GetCurrentQuestMasterResult>> callback
)
{
var task = new GetCurrentQuestMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.GetCurrentQuestMasterResult>(task.Result, task.Error));
}
public IFuture<Result.GetCurrentQuestMasterResult> GetCurrentQuestMasterFuture(
Request.GetCurrentQuestMasterRequest request
)
{
return new GetCurrentQuestMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.GetCurrentQuestMasterResult> GetCurrentQuestMasterAsync(
Request.GetCurrentQuestMasterRequest request
)
{
AsyncResult<Result.GetCurrentQuestMasterResult> result = null;
await GetCurrentQuestMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public GetCurrentQuestMasterTask GetCurrentQuestMasterAsync(
Request.GetCurrentQuestMasterRequest request
)
{
return new GetCurrentQuestMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.GetCurrentQuestMasterResult> GetCurrentQuestMasterAsync(
Request.GetCurrentQuestMasterRequest request
)
{
var task = new GetCurrentQuestMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class UpdateCurrentQuestMasterTask : Gs2RestSessionTask<UpdateCurrentQuestMasterRequest, UpdateCurrentQuestMasterResult>
{
public UpdateCurrentQuestMasterTask(IGs2Session session, RestSessionRequestFactory factory, UpdateCurrentQuestMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(UpdateCurrentQuestMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Put(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.Settings != null)
{
jsonWriter.WritePropertyName("settings");
jsonWriter.Write(request.Settings);
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator UpdateCurrentQuestMaster(
Request.UpdateCurrentQuestMasterRequest request,
UnityAction<AsyncResult<Result.UpdateCurrentQuestMasterResult>> callback
)
{
var task = new UpdateCurrentQuestMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.UpdateCurrentQuestMasterResult>(task.Result, task.Error));
}
public IFuture<Result.UpdateCurrentQuestMasterResult> UpdateCurrentQuestMasterFuture(
Request.UpdateCurrentQuestMasterRequest request
)
{
return new UpdateCurrentQuestMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.UpdateCurrentQuestMasterResult> UpdateCurrentQuestMasterAsync(
Request.UpdateCurrentQuestMasterRequest request
)
{
AsyncResult<Result.UpdateCurrentQuestMasterResult> result = null;
await UpdateCurrentQuestMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public UpdateCurrentQuestMasterTask UpdateCurrentQuestMasterAsync(
Request.UpdateCurrentQuestMasterRequest request
)
{
return new UpdateCurrentQuestMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.UpdateCurrentQuestMasterResult> UpdateCurrentQuestMasterAsync(
Request.UpdateCurrentQuestMasterRequest request
)
{
var task = new UpdateCurrentQuestMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class UpdateCurrentQuestMasterFromGitHubTask : Gs2RestSessionTask<UpdateCurrentQuestMasterFromGitHubRequest, UpdateCurrentQuestMasterFromGitHubResult>
{
public UpdateCurrentQuestMasterFromGitHubTask(IGs2Session session, RestSessionRequestFactory factory, UpdateCurrentQuestMasterFromGitHubRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(UpdateCurrentQuestMasterFromGitHubRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/from_git_hub";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Put(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.CheckoutSetting != null)
{
jsonWriter.WritePropertyName("checkoutSetting");
request.CheckoutSetting.WriteJson(jsonWriter);
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator UpdateCurrentQuestMasterFromGitHub(
Request.UpdateCurrentQuestMasterFromGitHubRequest request,
UnityAction<AsyncResult<Result.UpdateCurrentQuestMasterFromGitHubResult>> callback
)
{
var task = new UpdateCurrentQuestMasterFromGitHubTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.UpdateCurrentQuestMasterFromGitHubResult>(task.Result, task.Error));
}
public IFuture<Result.UpdateCurrentQuestMasterFromGitHubResult> UpdateCurrentQuestMasterFromGitHubFuture(
Request.UpdateCurrentQuestMasterFromGitHubRequest request
)
{
return new UpdateCurrentQuestMasterFromGitHubTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.UpdateCurrentQuestMasterFromGitHubResult> UpdateCurrentQuestMasterFromGitHubAsync(
Request.UpdateCurrentQuestMasterFromGitHubRequest request
)
{
AsyncResult<Result.UpdateCurrentQuestMasterFromGitHubResult> result = null;
await UpdateCurrentQuestMasterFromGitHub(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public UpdateCurrentQuestMasterFromGitHubTask UpdateCurrentQuestMasterFromGitHubAsync(
Request.UpdateCurrentQuestMasterFromGitHubRequest request
)
{
return new UpdateCurrentQuestMasterFromGitHubTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.UpdateCurrentQuestMasterFromGitHubResult> UpdateCurrentQuestMasterFromGitHubAsync(
Request.UpdateCurrentQuestMasterFromGitHubRequest request
)
{
var task = new UpdateCurrentQuestMasterFromGitHubTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DescribeProgressesByUserIdTask : Gs2RestSessionTask<DescribeProgressesByUserIdRequest, DescribeProgressesByUserIdResult>
{
public DescribeProgressesByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, DescribeProgressesByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DescribeProgressesByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/progress";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.UserId != null) {
sessionRequest.AddQueryString("userId", $"{request.UserId}");
}
if (request.PageToken != null) {
sessionRequest.AddQueryString("pageToken", $"{request.PageToken}");
}
if (request.Limit != null) {
sessionRequest.AddQueryString("limit", $"{request.Limit}");
}
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DescribeProgressesByUserId(
Request.DescribeProgressesByUserIdRequest request,
UnityAction<AsyncResult<Result.DescribeProgressesByUserIdResult>> callback
)
{
var task = new DescribeProgressesByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DescribeProgressesByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.DescribeProgressesByUserIdResult> DescribeProgressesByUserIdFuture(
Request.DescribeProgressesByUserIdRequest request
)
{
return new DescribeProgressesByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DescribeProgressesByUserIdResult> DescribeProgressesByUserIdAsync(
Request.DescribeProgressesByUserIdRequest request
)
{
AsyncResult<Result.DescribeProgressesByUserIdResult> result = null;
await DescribeProgressesByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DescribeProgressesByUserIdTask DescribeProgressesByUserIdAsync(
Request.DescribeProgressesByUserIdRequest request
)
{
return new DescribeProgressesByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DescribeProgressesByUserIdResult> DescribeProgressesByUserIdAsync(
Request.DescribeProgressesByUserIdRequest request
)
{
var task = new DescribeProgressesByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class CreateProgressByUserIdTask : Gs2RestSessionTask<CreateProgressByUserIdRequest, CreateProgressByUserIdResult>
{
public CreateProgressByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, CreateProgressByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(CreateProgressByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/progress";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.QuestModelId != null)
{
jsonWriter.WritePropertyName("questModelId");
jsonWriter.Write(request.QuestModelId);
}
if (request.Force != null)
{
jsonWriter.WritePropertyName("force");
jsonWriter.Write(request.Force.ToString());
}
if (request.Config != null)
{
jsonWriter.WritePropertyName("config");
jsonWriter.WriteArrayStart();
foreach(var item in request.Config)
{
if (item == null) {
jsonWriter.Write(null);
} else {
item.WriteJson(jsonWriter);
}
}
jsonWriter.WriteArrayEnd();
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.DuplicationAvoider != null)
{
sessionRequest.AddHeader("X-GS2-DUPLICATION-AVOIDER", request.DuplicationAvoider);
}
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator CreateProgressByUserId(
Request.CreateProgressByUserIdRequest request,
UnityAction<AsyncResult<Result.CreateProgressByUserIdResult>> callback
)
{
var task = new CreateProgressByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.CreateProgressByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.CreateProgressByUserIdResult> CreateProgressByUserIdFuture(
Request.CreateProgressByUserIdRequest request
)
{
return new CreateProgressByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.CreateProgressByUserIdResult> CreateProgressByUserIdAsync(
Request.CreateProgressByUserIdRequest request
)
{
AsyncResult<Result.CreateProgressByUserIdResult> result = null;
await CreateProgressByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public CreateProgressByUserIdTask CreateProgressByUserIdAsync(
Request.CreateProgressByUserIdRequest request
)
{
return new CreateProgressByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.CreateProgressByUserIdResult> CreateProgressByUserIdAsync(
Request.CreateProgressByUserIdRequest request
)
{
var task = new CreateProgressByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class GetProgressTask : Gs2RestSessionTask<GetProgressRequest, GetProgressResult>
{
public GetProgressTask(IGs2Session session, RestSessionRequestFactory factory, GetProgressRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(GetProgressRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/me/progress";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.AccessToken != null)
{
sessionRequest.AddHeader("X-GS2-ACCESS-TOKEN", request.AccessToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator GetProgress(
Request.GetProgressRequest request,
UnityAction<AsyncResult<Result.GetProgressResult>> callback
)
{
var task = new GetProgressTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.GetProgressResult>(task.Result, task.Error));
}
public IFuture<Result.GetProgressResult> GetProgressFuture(
Request.GetProgressRequest request
)
{
return new GetProgressTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.GetProgressResult> GetProgressAsync(
Request.GetProgressRequest request
)
{
AsyncResult<Result.GetProgressResult> result = null;
await GetProgress(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public GetProgressTask GetProgressAsync(
Request.GetProgressRequest request
)
{
return new GetProgressTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.GetProgressResult> GetProgressAsync(
Request.GetProgressRequest request
)
{
var task = new GetProgressTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class GetProgressByUserIdTask : Gs2RestSessionTask<GetProgressByUserIdRequest, GetProgressByUserIdResult>
{
public GetProgressByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, GetProgressByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(GetProgressByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/progress";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator GetProgressByUserId(
Request.GetProgressByUserIdRequest request,
UnityAction<AsyncResult<Result.GetProgressByUserIdResult>> callback
)
{
var task = new GetProgressByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.GetProgressByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.GetProgressByUserIdResult> GetProgressByUserIdFuture(
Request.GetProgressByUserIdRequest request
)
{
return new GetProgressByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.GetProgressByUserIdResult> GetProgressByUserIdAsync(
Request.GetProgressByUserIdRequest request
)
{
AsyncResult<Result.GetProgressByUserIdResult> result = null;
await GetProgressByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public GetProgressByUserIdTask GetProgressByUserIdAsync(
Request.GetProgressByUserIdRequest request
)
{
return new GetProgressByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.GetProgressByUserIdResult> GetProgressByUserIdAsync(
Request.GetProgressByUserIdRequest request
)
{
var task = new GetProgressByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class StartTask : Gs2RestSessionTask<StartRequest, StartResult>
{
public StartTask(IGs2Session session, RestSessionRequestFactory factory, StartRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(StartRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/me/progress/group/{questGroupName}/quest/{questName}/start";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
url = url.Replace("{questName}", !string.IsNullOrEmpty(request.QuestName) ? request.QuestName.ToString() : "null");
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.Force != null)
{
jsonWriter.WritePropertyName("force");
jsonWriter.Write(request.Force.ToString());
}
if (request.Config != null)
{
jsonWriter.WritePropertyName("config");
jsonWriter.WriteArrayStart();
foreach(var item in request.Config)
{
if (item == null) {
jsonWriter.Write(null);
} else {
item.WriteJson(jsonWriter);
}
}
jsonWriter.WriteArrayEnd();
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.AccessToken != null)
{
sessionRequest.AddHeader("X-GS2-ACCESS-TOKEN", request.AccessToken);
}
if (request.DuplicationAvoider != null)
{
sessionRequest.AddHeader("X-GS2-DUPLICATION-AVOIDER", request.DuplicationAvoider);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
public override void OnError(Gs2.Core.Exception.Gs2Exception error)
{
if (error.Errors.Count(v => v.code == "quest.progress.exists") > 0) {
base.OnError(new Exception.InProgressException(error));
}
else {
base.OnError(error);
}
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator Start(
Request.StartRequest request,
UnityAction<AsyncResult<Result.StartResult>> callback
)
{
var task = new StartTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.StartResult>(task.Result, task.Error));
}
public IFuture<Result.StartResult> StartFuture(
Request.StartRequest request
)
{
return new StartTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.StartResult> StartAsync(
Request.StartRequest request
)
{
AsyncResult<Result.StartResult> result = null;
await Start(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public StartTask StartAsync(
Request.StartRequest request
)
{
return new StartTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.StartResult> StartAsync(
Request.StartRequest request
)
{
var task = new StartTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class StartByUserIdTask : Gs2RestSessionTask<StartByUserIdRequest, StartByUserIdResult>
{
public StartByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, StartByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(StartByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/progress/group/{questGroupName}/quest/{questName}/start";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
url = url.Replace("{questName}", !string.IsNullOrEmpty(request.QuestName) ? request.QuestName.ToString() : "null");
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.Force != null)
{
jsonWriter.WritePropertyName("force");
jsonWriter.Write(request.Force.ToString());
}
if (request.Config != null)
{
jsonWriter.WritePropertyName("config");
jsonWriter.WriteArrayStart();
foreach(var item in request.Config)
{
if (item == null) {
jsonWriter.Write(null);
} else {
item.WriteJson(jsonWriter);
}
}
jsonWriter.WriteArrayEnd();
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.DuplicationAvoider != null)
{
sessionRequest.AddHeader("X-GS2-DUPLICATION-AVOIDER", request.DuplicationAvoider);
}
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
public override void OnError(Gs2.Core.Exception.Gs2Exception error)
{
if (error.Errors.Count(v => v.code == "quest.progress.exists") > 0) {
base.OnError(new Exception.InProgressException(error));
}
else {
base.OnError(error);
}
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator StartByUserId(
Request.StartByUserIdRequest request,
UnityAction<AsyncResult<Result.StartByUserIdResult>> callback
)
{
var task = new StartByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.StartByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.StartByUserIdResult> StartByUserIdFuture(
Request.StartByUserIdRequest request
)
{
return new StartByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.StartByUserIdResult> StartByUserIdAsync(
Request.StartByUserIdRequest request
)
{
AsyncResult<Result.StartByUserIdResult> result = null;
await StartByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public StartByUserIdTask StartByUserIdAsync(
Request.StartByUserIdRequest request
)
{
return new StartByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.StartByUserIdResult> StartByUserIdAsync(
Request.StartByUserIdRequest request
)
{
var task = new StartByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class EndTask : Gs2RestSessionTask<EndRequest, EndResult>
{
public EndTask(IGs2Session session, RestSessionRequestFactory factory, EndRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(EndRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/me/progress/end";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.Rewards != null)
{
jsonWriter.WritePropertyName("rewards");
jsonWriter.WriteArrayStart();
foreach(var item in request.Rewards)
{
item.WriteJson(jsonWriter);
}
jsonWriter.WriteArrayEnd();
}
if (request.IsComplete != null)
{
jsonWriter.WritePropertyName("isComplete");
jsonWriter.Write(request.IsComplete.ToString());
}
if (request.Config != null)
{
jsonWriter.WritePropertyName("config");
jsonWriter.WriteArrayStart();
foreach(var item in request.Config)
{
if (item == null) {
jsonWriter.Write(null);
} else {
item.WriteJson(jsonWriter);
}
}
jsonWriter.WriteArrayEnd();
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.AccessToken != null)
{
sessionRequest.AddHeader("X-GS2-ACCESS-TOKEN", request.AccessToken);
}
if (request.DuplicationAvoider != null)
{
sessionRequest.AddHeader("X-GS2-DUPLICATION-AVOIDER", request.DuplicationAvoider);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator End(
Request.EndRequest request,
UnityAction<AsyncResult<Result.EndResult>> callback
)
{
var task = new EndTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.EndResult>(task.Result, task.Error));
}
public IFuture<Result.EndResult> EndFuture(
Request.EndRequest request
)
{
return new EndTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.EndResult> EndAsync(
Request.EndRequest request
)
{
AsyncResult<Result.EndResult> result = null;
await End(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public EndTask EndAsync(
Request.EndRequest request
)
{
return new EndTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.EndResult> EndAsync(
Request.EndRequest request
)
{
var task = new EndTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class EndByUserIdTask : Gs2RestSessionTask<EndByUserIdRequest, EndByUserIdResult>
{
public EndByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, EndByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(EndByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/progress/end";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.Rewards != null)
{
jsonWriter.WritePropertyName("rewards");
jsonWriter.WriteArrayStart();
foreach(var item in request.Rewards)
{
item.WriteJson(jsonWriter);
}
jsonWriter.WriteArrayEnd();
}
if (request.IsComplete != null)
{
jsonWriter.WritePropertyName("isComplete");
jsonWriter.Write(request.IsComplete.ToString());
}
if (request.Config != null)
{
jsonWriter.WritePropertyName("config");
jsonWriter.WriteArrayStart();
foreach(var item in request.Config)
{
if (item == null) {
jsonWriter.Write(null);
} else {
item.WriteJson(jsonWriter);
}
}
jsonWriter.WriteArrayEnd();
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.DuplicationAvoider != null)
{
sessionRequest.AddHeader("X-GS2-DUPLICATION-AVOIDER", request.DuplicationAvoider);
}
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator EndByUserId(
Request.EndByUserIdRequest request,
UnityAction<AsyncResult<Result.EndByUserIdResult>> callback
)
{
var task = new EndByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.EndByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.EndByUserIdResult> EndByUserIdFuture(
Request.EndByUserIdRequest request
)
{
return new EndByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.EndByUserIdResult> EndByUserIdAsync(
Request.EndByUserIdRequest request
)
{
AsyncResult<Result.EndByUserIdResult> result = null;
await EndByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public EndByUserIdTask EndByUserIdAsync(
Request.EndByUserIdRequest request
)
{
return new EndByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.EndByUserIdResult> EndByUserIdAsync(
Request.EndByUserIdRequest request
)
{
var task = new EndByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DeleteProgressTask : Gs2RestSessionTask<DeleteProgressRequest, DeleteProgressResult>
{
public DeleteProgressTask(IGs2Session session, RestSessionRequestFactory factory, DeleteProgressRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DeleteProgressRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/me/progress";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Delete(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.AccessToken != null)
{
sessionRequest.AddHeader("X-GS2-ACCESS-TOKEN", request.AccessToken);
}
if (request.DuplicationAvoider != null)
{
sessionRequest.AddHeader("X-GS2-DUPLICATION-AVOIDER", request.DuplicationAvoider);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DeleteProgress(
Request.DeleteProgressRequest request,
UnityAction<AsyncResult<Result.DeleteProgressResult>> callback
)
{
var task = new DeleteProgressTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DeleteProgressResult>(task.Result, task.Error));
}
public IFuture<Result.DeleteProgressResult> DeleteProgressFuture(
Request.DeleteProgressRequest request
)
{
return new DeleteProgressTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DeleteProgressResult> DeleteProgressAsync(
Request.DeleteProgressRequest request
)
{
AsyncResult<Result.DeleteProgressResult> result = null;
await DeleteProgress(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DeleteProgressTask DeleteProgressAsync(
Request.DeleteProgressRequest request
)
{
return new DeleteProgressTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DeleteProgressResult> DeleteProgressAsync(
Request.DeleteProgressRequest request
)
{
var task = new DeleteProgressTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DeleteProgressByUserIdTask : Gs2RestSessionTask<DeleteProgressByUserIdRequest, DeleteProgressByUserIdResult>
{
public DeleteProgressByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, DeleteProgressByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DeleteProgressByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/progress";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
var sessionRequest = Factory.Delete(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DuplicationAvoider != null)
{
sessionRequest.AddHeader("X-GS2-DUPLICATION-AVOIDER", request.DuplicationAvoider);
}
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DeleteProgressByUserId(
Request.DeleteProgressByUserIdRequest request,
UnityAction<AsyncResult<Result.DeleteProgressByUserIdResult>> callback
)
{
var task = new DeleteProgressByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DeleteProgressByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.DeleteProgressByUserIdResult> DeleteProgressByUserIdFuture(
Request.DeleteProgressByUserIdRequest request
)
{
return new DeleteProgressByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DeleteProgressByUserIdResult> DeleteProgressByUserIdAsync(
Request.DeleteProgressByUserIdRequest request
)
{
AsyncResult<Result.DeleteProgressByUserIdResult> result = null;
await DeleteProgressByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DeleteProgressByUserIdTask DeleteProgressByUserIdAsync(
Request.DeleteProgressByUserIdRequest request
)
{
return new DeleteProgressByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DeleteProgressByUserIdResult> DeleteProgressByUserIdAsync(
Request.DeleteProgressByUserIdRequest request
)
{
var task = new DeleteProgressByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class CreateProgressByStampSheetTask : Gs2RestSessionTask<CreateProgressByStampSheetRequest, CreateProgressByStampSheetResult>
{
public CreateProgressByStampSheetTask(IGs2Session session, RestSessionRequestFactory factory, CreateProgressByStampSheetRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(CreateProgressByStampSheetRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/stamp/progress/create";
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.StampSheet != null)
{
jsonWriter.WritePropertyName("stampSheet");
jsonWriter.Write(request.StampSheet);
}
if (request.KeyId != null)
{
jsonWriter.WritePropertyName("keyId");
jsonWriter.Write(request.KeyId);
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator CreateProgressByStampSheet(
Request.CreateProgressByStampSheetRequest request,
UnityAction<AsyncResult<Result.CreateProgressByStampSheetResult>> callback
)
{
var task = new CreateProgressByStampSheetTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.CreateProgressByStampSheetResult>(task.Result, task.Error));
}
public IFuture<Result.CreateProgressByStampSheetResult> CreateProgressByStampSheetFuture(
Request.CreateProgressByStampSheetRequest request
)
{
return new CreateProgressByStampSheetTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.CreateProgressByStampSheetResult> CreateProgressByStampSheetAsync(
Request.CreateProgressByStampSheetRequest request
)
{
AsyncResult<Result.CreateProgressByStampSheetResult> result = null;
await CreateProgressByStampSheet(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public CreateProgressByStampSheetTask CreateProgressByStampSheetAsync(
Request.CreateProgressByStampSheetRequest request
)
{
return new CreateProgressByStampSheetTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.CreateProgressByStampSheetResult> CreateProgressByStampSheetAsync(
Request.CreateProgressByStampSheetRequest request
)
{
var task = new CreateProgressByStampSheetTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DeleteProgressByStampTaskTask : Gs2RestSessionTask<DeleteProgressByStampTaskRequest, DeleteProgressByStampTaskResult>
{
public DeleteProgressByStampTaskTask(IGs2Session session, RestSessionRequestFactory factory, DeleteProgressByStampTaskRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DeleteProgressByStampTaskRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/stamp/progress/delete";
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.StampTask != null)
{
jsonWriter.WritePropertyName("stampTask");
jsonWriter.Write(request.StampTask);
}
if (request.KeyId != null)
{
jsonWriter.WritePropertyName("keyId");
jsonWriter.Write(request.KeyId);
}
if (request.ContextStack != null)
{
jsonWriter.WritePropertyName("contextStack");
jsonWriter.Write(request.ContextStack.ToString());
}
jsonWriter.WriteObjectEnd();
var body = stringBuilder.ToString();
if (!string.IsNullOrEmpty(body))
{
sessionRequest.Body = body;
}
sessionRequest.AddHeader("Content-Type", "application/json");
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DeleteProgressByStampTask(
Request.DeleteProgressByStampTaskRequest request,
UnityAction<AsyncResult<Result.DeleteProgressByStampTaskResult>> callback
)
{
var task = new DeleteProgressByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DeleteProgressByStampTaskResult>(task.Result, task.Error));
}
public IFuture<Result.DeleteProgressByStampTaskResult> DeleteProgressByStampTaskFuture(
Request.DeleteProgressByStampTaskRequest request
)
{
return new DeleteProgressByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DeleteProgressByStampTaskResult> DeleteProgressByStampTaskAsync(
Request.DeleteProgressByStampTaskRequest request
)
{
AsyncResult<Result.DeleteProgressByStampTaskResult> result = null;
await DeleteProgressByStampTask(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DeleteProgressByStampTaskTask DeleteProgressByStampTaskAsync(
Request.DeleteProgressByStampTaskRequest request
)
{
return new DeleteProgressByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DeleteProgressByStampTaskResult> DeleteProgressByStampTaskAsync(
Request.DeleteProgressByStampTaskRequest request
)
{
var task = new DeleteProgressByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DescribeCompletedQuestListsTask : Gs2RestSessionTask<DescribeCompletedQuestListsRequest, DescribeCompletedQuestListsResult>
{
public DescribeCompletedQuestListsTask(IGs2Session session, RestSessionRequestFactory factory, DescribeCompletedQuestListsRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DescribeCompletedQuestListsRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/me/completed";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.PageToken != null) {
sessionRequest.AddQueryString("pageToken", $"{request.PageToken}");
}
if (request.Limit != null) {
sessionRequest.AddQueryString("limit", $"{request.Limit}");
}
if (request.AccessToken != null)
{
sessionRequest.AddHeader("X-GS2-ACCESS-TOKEN", request.AccessToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DescribeCompletedQuestLists(
Request.DescribeCompletedQuestListsRequest request,
UnityAction<AsyncResult<Result.DescribeCompletedQuestListsResult>> callback
)
{
var task = new DescribeCompletedQuestListsTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DescribeCompletedQuestListsResult>(task.Result, task.Error));
}
public IFuture<Result.DescribeCompletedQuestListsResult> DescribeCompletedQuestListsFuture(
Request.DescribeCompletedQuestListsRequest request
)
{
return new DescribeCompletedQuestListsTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DescribeCompletedQuestListsResult> DescribeCompletedQuestListsAsync(
Request.DescribeCompletedQuestListsRequest request
)
{
AsyncResult<Result.DescribeCompletedQuestListsResult> result = null;
await DescribeCompletedQuestLists(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DescribeCompletedQuestListsTask DescribeCompletedQuestListsAsync(
Request.DescribeCompletedQuestListsRequest request
)
{
return new DescribeCompletedQuestListsTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DescribeCompletedQuestListsResult> DescribeCompletedQuestListsAsync(
Request.DescribeCompletedQuestListsRequest request
)
{
var task = new DescribeCompletedQuestListsTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DescribeCompletedQuestListsByUserIdTask : Gs2RestSessionTask<DescribeCompletedQuestListsByUserIdRequest, DescribeCompletedQuestListsByUserIdResult>
{
public DescribeCompletedQuestListsByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, DescribeCompletedQuestListsByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DescribeCompletedQuestListsByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/completed";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.PageToken != null) {
sessionRequest.AddQueryString("pageToken", $"{request.PageToken}");
}
if (request.Limit != null) {
sessionRequest.AddQueryString("limit", $"{request.Limit}");
}
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DescribeCompletedQuestListsByUserId(
Request.DescribeCompletedQuestListsByUserIdRequest request,
UnityAction<AsyncResult<Result.DescribeCompletedQuestListsByUserIdResult>> callback
)
{
var task = new DescribeCompletedQuestListsByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DescribeCompletedQuestListsByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.DescribeCompletedQuestListsByUserIdResult> DescribeCompletedQuestListsByUserIdFuture(
Request.DescribeCompletedQuestListsByUserIdRequest request
)
{
return new DescribeCompletedQuestListsByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DescribeCompletedQuestListsByUserIdResult> DescribeCompletedQuestListsByUserIdAsync(
Request.DescribeCompletedQuestListsByUserIdRequest request
)
{
AsyncResult<Result.DescribeCompletedQuestListsByUserIdResult> result = null;
await DescribeCompletedQuestListsByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DescribeCompletedQuestListsByUserIdTask DescribeCompletedQuestListsByUserIdAsync(
Request.DescribeCompletedQuestListsByUserIdRequest request
)
{
return new DescribeCompletedQuestListsByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DescribeCompletedQuestListsByUserIdResult> DescribeCompletedQuestListsByUserIdAsync(
Request.DescribeCompletedQuestListsByUserIdRequest request
)
{
var task = new DescribeCompletedQuestListsByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class GetCompletedQuestListTask : Gs2RestSessionTask<GetCompletedQuestListRequest, GetCompletedQuestListResult>
{
public GetCompletedQuestListTask(IGs2Session session, RestSessionRequestFactory factory, GetCompletedQuestListRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(GetCompletedQuestListRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/me/completed/group/{questGroupName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.AccessToken != null)
{
sessionRequest.AddHeader("X-GS2-ACCESS-TOKEN", request.AccessToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator GetCompletedQuestList(
Request.GetCompletedQuestListRequest request,
UnityAction<AsyncResult<Result.GetCompletedQuestListResult>> callback
)
{
var task = new GetCompletedQuestListTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.GetCompletedQuestListResult>(task.Result, task.Error));
}
public IFuture<Result.GetCompletedQuestListResult> GetCompletedQuestListFuture(
Request.GetCompletedQuestListRequest request
)
{
return new GetCompletedQuestListTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.GetCompletedQuestListResult> GetCompletedQuestListAsync(
Request.GetCompletedQuestListRequest request
)
{
AsyncResult<Result.GetCompletedQuestListResult> result = null;
await GetCompletedQuestList(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public GetCompletedQuestListTask GetCompletedQuestListAsync(
Request.GetCompletedQuestListRequest request
)
{
return new GetCompletedQuestListTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.GetCompletedQuestListResult> GetCompletedQuestListAsync(
Request.GetCompletedQuestListRequest request
)
{
var task = new GetCompletedQuestListTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class GetCompletedQuestListByUserIdTask : Gs2RestSessionTask<GetCompletedQuestListByUserIdRequest, GetCompletedQuestListByUserIdResult>
{
public GetCompletedQuestListByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, GetCompletedQuestListByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(GetCompletedQuestListByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/completed/group/{questGroupName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator GetCompletedQuestListByUserId(
Request.GetCompletedQuestListByUserIdRequest request,
UnityAction<AsyncResult<Result.GetCompletedQuestListByUserIdResult>> callback
)
{
var task = new GetCompletedQuestListByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.GetCompletedQuestListByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.GetCompletedQuestListByUserIdResult> GetCompletedQuestListByUserIdFuture(
Request.GetCompletedQuestListByUserIdRequest request
)
{
return new GetCompletedQuestListByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.GetCompletedQuestListByUserIdResult> GetCompletedQuestListByUserIdAsync(
Request.GetCompletedQuestListByUserIdRequest request
)
{
AsyncResult<Result.GetCompletedQuestListByUserIdResult> result = null;
await GetCompletedQuestListByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public GetCompletedQuestListByUserIdTask GetCompletedQuestListByUserIdAsync(
Request.GetCompletedQuestListByUserIdRequest request
)
{
return new GetCompletedQuestListByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.GetCompletedQuestListByUserIdResult> GetCompletedQuestListByUserIdAsync(
Request.GetCompletedQuestListByUserIdRequest request
)
{
var task = new GetCompletedQuestListByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DeleteCompletedQuestListByUserIdTask : Gs2RestSessionTask<DeleteCompletedQuestListByUserIdRequest, DeleteCompletedQuestListByUserIdResult>
{
public DeleteCompletedQuestListByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, DeleteCompletedQuestListByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DeleteCompletedQuestListByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/completed/group/{questGroupName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
var sessionRequest = Factory.Delete(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DuplicationAvoider != null)
{
sessionRequest.AddHeader("X-GS2-DUPLICATION-AVOIDER", request.DuplicationAvoider);
}
if (request.TimeOffsetToken != null)
{
sessionRequest.AddHeader("X-GS2-TIME-OFFSET-TOKEN", request.TimeOffsetToken);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DeleteCompletedQuestListByUserId(
Request.DeleteCompletedQuestListByUserIdRequest request,
UnityAction<AsyncResult<Result.DeleteCompletedQuestListByUserIdResult>> callback
)
{
var task = new DeleteCompletedQuestListByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DeleteCompletedQuestListByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.DeleteCompletedQuestListByUserIdResult> DeleteCompletedQuestListByUserIdFuture(
Request.DeleteCompletedQuestListByUserIdRequest request
)
{
return new DeleteCompletedQuestListByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DeleteCompletedQuestListByUserIdResult> DeleteCompletedQuestListByUserIdAsync(
Request.DeleteCompletedQuestListByUserIdRequest request
)
{
AsyncResult<Result.DeleteCompletedQuestListByUserIdResult> result = null;
await DeleteCompletedQuestListByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DeleteCompletedQuestListByUserIdTask DeleteCompletedQuestListByUserIdAsync(
Request.DeleteCompletedQuestListByUserIdRequest request
)
{
return new DeleteCompletedQuestListByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DeleteCompletedQuestListByUserIdResult> DeleteCompletedQuestListByUserIdAsync(
Request.DeleteCompletedQuestListByUserIdRequest request
)
{
var task = new DeleteCompletedQuestListByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DescribeQuestGroupModelsTask : Gs2RestSessionTask<DescribeQuestGroupModelsRequest, DescribeQuestGroupModelsResult>
{
public DescribeQuestGroupModelsTask(IGs2Session session, RestSessionRequestFactory factory, DescribeQuestGroupModelsRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DescribeQuestGroupModelsRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/group";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DescribeQuestGroupModels(
Request.DescribeQuestGroupModelsRequest request,
UnityAction<AsyncResult<Result.DescribeQuestGroupModelsResult>> callback
)
{
var task = new DescribeQuestGroupModelsTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DescribeQuestGroupModelsResult>(task.Result, task.Error));
}
public IFuture<Result.DescribeQuestGroupModelsResult> DescribeQuestGroupModelsFuture(
Request.DescribeQuestGroupModelsRequest request
)
{
return new DescribeQuestGroupModelsTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DescribeQuestGroupModelsResult> DescribeQuestGroupModelsAsync(
Request.DescribeQuestGroupModelsRequest request
)
{
AsyncResult<Result.DescribeQuestGroupModelsResult> result = null;
await DescribeQuestGroupModels(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DescribeQuestGroupModelsTask DescribeQuestGroupModelsAsync(
Request.DescribeQuestGroupModelsRequest request
)
{
return new DescribeQuestGroupModelsTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DescribeQuestGroupModelsResult> DescribeQuestGroupModelsAsync(
Request.DescribeQuestGroupModelsRequest request
)
{
var task = new DescribeQuestGroupModelsTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class GetQuestGroupModelTask : Gs2RestSessionTask<GetQuestGroupModelRequest, GetQuestGroupModelResult>
{
public GetQuestGroupModelTask(IGs2Session session, RestSessionRequestFactory factory, GetQuestGroupModelRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(GetQuestGroupModelRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/group/{questGroupName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator GetQuestGroupModel(
Request.GetQuestGroupModelRequest request,
UnityAction<AsyncResult<Result.GetQuestGroupModelResult>> callback
)
{
var task = new GetQuestGroupModelTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.GetQuestGroupModelResult>(task.Result, task.Error));
}
public IFuture<Result.GetQuestGroupModelResult> GetQuestGroupModelFuture(
Request.GetQuestGroupModelRequest request
)
{
return new GetQuestGroupModelTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.GetQuestGroupModelResult> GetQuestGroupModelAsync(
Request.GetQuestGroupModelRequest request
)
{
AsyncResult<Result.GetQuestGroupModelResult> result = null;
await GetQuestGroupModel(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public GetQuestGroupModelTask GetQuestGroupModelAsync(
Request.GetQuestGroupModelRequest request
)
{
return new GetQuestGroupModelTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.GetQuestGroupModelResult> GetQuestGroupModelAsync(
Request.GetQuestGroupModelRequest request
)
{
var task = new GetQuestGroupModelTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DescribeQuestModelsTask : Gs2RestSessionTask<DescribeQuestModelsRequest, DescribeQuestModelsResult>
{
public DescribeQuestModelsTask(IGs2Session session, RestSessionRequestFactory factory, DescribeQuestModelsRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DescribeQuestModelsRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/group/{questGroupName}/quest";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator DescribeQuestModels(
Request.DescribeQuestModelsRequest request,
UnityAction<AsyncResult<Result.DescribeQuestModelsResult>> callback
)
{
var task = new DescribeQuestModelsTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DescribeQuestModelsResult>(task.Result, task.Error));
}
public IFuture<Result.DescribeQuestModelsResult> DescribeQuestModelsFuture(
Request.DescribeQuestModelsRequest request
)
{
return new DescribeQuestModelsTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DescribeQuestModelsResult> DescribeQuestModelsAsync(
Request.DescribeQuestModelsRequest request
)
{
AsyncResult<Result.DescribeQuestModelsResult> result = null;
await DescribeQuestModels(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DescribeQuestModelsTask DescribeQuestModelsAsync(
Request.DescribeQuestModelsRequest request
)
{
return new DescribeQuestModelsTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DescribeQuestModelsResult> DescribeQuestModelsAsync(
Request.DescribeQuestModelsRequest request
)
{
var task = new DescribeQuestModelsTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class GetQuestModelTask : Gs2RestSessionTask<GetQuestModelRequest, GetQuestModelResult>
{
public GetQuestModelTask(IGs2Session session, RestSessionRequestFactory factory, GetQuestModelRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(GetQuestModelRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "quest")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/group/{questGroupName}/quest/{questName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{questGroupName}", !string.IsNullOrEmpty(request.QuestGroupName) ? request.QuestGroupName.ToString() : "null");
url = url.Replace("{questName}", !string.IsNullOrEmpty(request.QuestName) ? request.QuestName.ToString() : "null");
var sessionRequest = Factory.Get(url);
if (request.ContextStack != null)
{
sessionRequest.AddQueryString("contextStack", request.ContextStack);
}
if (request.DryRun)
{
sessionRequest.AddHeader("X-GS2-DRY-RUN", "true");
}
AddHeader(
Session.Credential,
sessionRequest
);
return sessionRequest;
}
}
#if UNITY_2017_1_OR_NEWER
public IEnumerator GetQuestModel(
Request.GetQuestModelRequest request,
UnityAction<AsyncResult<Result.GetQuestModelResult>> callback
)
{
var task = new GetQuestModelTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.GetQuestModelResult>(task.Result, task.Error));
}
public IFuture<Result.GetQuestModelResult> GetQuestModelFuture(
Request.GetQuestModelRequest request
)
{
return new GetQuestModelTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.GetQuestModelResult> GetQuestModelAsync(
Request.GetQuestModelRequest request
)
{
AsyncResult<Result.GetQuestModelResult> result = null;
await GetQuestModel(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public GetQuestModelTask GetQuestModelAsync(
Request.GetQuestModelRequest request
)
{
return new GetQuestModelTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.GetQuestModelResult> GetQuestModelAsync(
Request.GetQuestModelRequest request
)
{
var task = new GetQuestModelTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
}
}