Repository URL to install this package:
|
Version:
2025.9.8 ▾
|
/*
* 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.
*/
#pragma warning disable CS0618 // Obsolete with a message
#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.Gs2Mission.Request;
using Gs2.Gs2Mission.Result;
using Gs2.Util.LitJson;
namespace Gs2.Gs2Mission
{
public class Gs2MissionRestClient : AbstractGs2Client
{
#if UNITY_2017_1_OR_NEWER
private readonly CertificateHandler _certificateHandler;
#endif
public static string Endpoint = "mission";
protected Gs2RestSession Gs2RestSession => (Gs2RestSession) Gs2Session;
public Gs2MissionRestClient(Gs2RestSession Gs2RestSession) : base(Gs2RestSession)
{
}
#if UNITY_2017_1_OR_NEWER
public Gs2MissionRestClient(Gs2RestSession gs2RestSession, CertificateHandler certificateHandler) : base(gs2RestSession)
{
_certificateHandler = certificateHandler;
}
#endif
public class DescribeCompletesTask : Gs2RestSessionTask<DescribeCompletesRequest, DescribeCompletesResult>
{
public DescribeCompletesTask(IGs2Session session, RestSessionRequestFactory factory, DescribeCompletesRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DescribeCompletesRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/me/complete";
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 DescribeCompletes(
Request.DescribeCompletesRequest request,
UnityAction<AsyncResult<Result.DescribeCompletesResult>> callback
)
{
var task = new DescribeCompletesTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DescribeCompletesResult>(task.Result, task.Error));
}
public IFuture<Result.DescribeCompletesResult> DescribeCompletesFuture(
Request.DescribeCompletesRequest request
)
{
return new DescribeCompletesTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DescribeCompletesResult> DescribeCompletesAsync(
Request.DescribeCompletesRequest request
)
{
AsyncResult<Result.DescribeCompletesResult> result = null;
await DescribeCompletes(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DescribeCompletesTask DescribeCompletesAsync(
Request.DescribeCompletesRequest request
)
{
return new DescribeCompletesTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DescribeCompletesResult> DescribeCompletesAsync(
Request.DescribeCompletesRequest request
)
{
var task = new DescribeCompletesTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DescribeCompletesByUserIdTask : Gs2RestSessionTask<DescribeCompletesByUserIdRequest, DescribeCompletesByUserIdResult>
{
public DescribeCompletesByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, DescribeCompletesByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DescribeCompletesByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/complete";
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 DescribeCompletesByUserId(
Request.DescribeCompletesByUserIdRequest request,
UnityAction<AsyncResult<Result.DescribeCompletesByUserIdResult>> callback
)
{
var task = new DescribeCompletesByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DescribeCompletesByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.DescribeCompletesByUserIdResult> DescribeCompletesByUserIdFuture(
Request.DescribeCompletesByUserIdRequest request
)
{
return new DescribeCompletesByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DescribeCompletesByUserIdResult> DescribeCompletesByUserIdAsync(
Request.DescribeCompletesByUserIdRequest request
)
{
AsyncResult<Result.DescribeCompletesByUserIdResult> result = null;
await DescribeCompletesByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DescribeCompletesByUserIdTask DescribeCompletesByUserIdAsync(
Request.DescribeCompletesByUserIdRequest request
)
{
return new DescribeCompletesByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DescribeCompletesByUserIdResult> DescribeCompletesByUserIdAsync(
Request.DescribeCompletesByUserIdRequest request
)
{
var task = new DescribeCompletesByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class CompleteTask : Gs2RestSessionTask<CompleteRequest, CompleteResult>
{
public CompleteTask(IGs2Session session, RestSessionRequestFactory factory, CompleteRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(CompleteRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/me/complete/group/{missionGroupName}/task/{missionTaskName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{missionGroupName}", !string.IsNullOrEmpty(request.MissionGroupName) ? request.MissionGroupName.ToString() : "null");
url = url.Replace("{missionTaskName}", !string.IsNullOrEmpty(request.MissionTaskName) ? request.MissionTaskName.ToString() : "null");
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
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 Complete(
Request.CompleteRequest request,
UnityAction<AsyncResult<Result.CompleteResult>> callback
)
{
var task = new CompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.CompleteResult>(task.Result, task.Error));
}
public IFuture<Result.CompleteResult> CompleteFuture(
Request.CompleteRequest request
)
{
return new CompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.CompleteResult> CompleteAsync(
Request.CompleteRequest request
)
{
AsyncResult<Result.CompleteResult> result = null;
await Complete(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public CompleteTask CompleteAsync(
Request.CompleteRequest request
)
{
return new CompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.CompleteResult> CompleteAsync(
Request.CompleteRequest request
)
{
var task = new CompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class CompleteByUserIdTask : Gs2RestSessionTask<CompleteByUserIdRequest, CompleteByUserIdResult>
{
public CompleteByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, CompleteByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(CompleteByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/complete/group/{missionGroupName}/task/{missionTaskName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{missionGroupName}", !string.IsNullOrEmpty(request.MissionGroupName) ? request.MissionGroupName.ToString() : "null");
url = url.Replace("{missionTaskName}", !string.IsNullOrEmpty(request.MissionTaskName) ? request.MissionTaskName.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.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 CompleteByUserId(
Request.CompleteByUserIdRequest request,
UnityAction<AsyncResult<Result.CompleteByUserIdResult>> callback
)
{
var task = new CompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.CompleteByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.CompleteByUserIdResult> CompleteByUserIdFuture(
Request.CompleteByUserIdRequest request
)
{
return new CompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.CompleteByUserIdResult> CompleteByUserIdAsync(
Request.CompleteByUserIdRequest request
)
{
AsyncResult<Result.CompleteByUserIdResult> result = null;
await CompleteByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public CompleteByUserIdTask CompleteByUserIdAsync(
Request.CompleteByUserIdRequest request
)
{
return new CompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.CompleteByUserIdResult> CompleteByUserIdAsync(
Request.CompleteByUserIdRequest request
)
{
var task = new CompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class BatchCompleteTask : Gs2RestSessionTask<BatchCompleteRequest, BatchCompleteResult>
{
public BatchCompleteTask(IGs2Session session, RestSessionRequestFactory factory, BatchCompleteRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(BatchCompleteRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/me/complete/group/{missionGroupName}/task/any/batch";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{missionGroupName}", !string.IsNullOrEmpty(request.MissionGroupName) ? request.MissionGroupName.ToString() : "null");
var sessionRequest = Factory.Post(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.MissionTaskNames != null)
{
jsonWriter.WritePropertyName("missionTaskNames");
jsonWriter.WriteArrayStart();
foreach(var item in request.MissionTaskNames)
{
jsonWriter.Write(item);
}
jsonWriter.WriteArrayEnd();
}
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 BatchComplete(
Request.BatchCompleteRequest request,
UnityAction<AsyncResult<Result.BatchCompleteResult>> callback
)
{
var task = new BatchCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.BatchCompleteResult>(task.Result, task.Error));
}
public IFuture<Result.BatchCompleteResult> BatchCompleteFuture(
Request.BatchCompleteRequest request
)
{
return new BatchCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.BatchCompleteResult> BatchCompleteAsync(
Request.BatchCompleteRequest request
)
{
AsyncResult<Result.BatchCompleteResult> result = null;
await BatchComplete(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public BatchCompleteTask BatchCompleteAsync(
Request.BatchCompleteRequest request
)
{
return new BatchCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.BatchCompleteResult> BatchCompleteAsync(
Request.BatchCompleteRequest request
)
{
var task = new BatchCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class BatchCompleteByUserIdTask : Gs2RestSessionTask<BatchCompleteByUserIdRequest, BatchCompleteByUserIdResult>
{
public BatchCompleteByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, BatchCompleteByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(BatchCompleteByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/complete/group/{missionGroupName}/task/any/batch";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{missionGroupName}", !string.IsNullOrEmpty(request.MissionGroupName) ? request.MissionGroupName.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.MissionTaskNames != null)
{
jsonWriter.WritePropertyName("missionTaskNames");
jsonWriter.WriteArrayStart();
foreach(var item in request.MissionTaskNames)
{
jsonWriter.Write(item);
}
jsonWriter.WriteArrayEnd();
}
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 BatchCompleteByUserId(
Request.BatchCompleteByUserIdRequest request,
UnityAction<AsyncResult<Result.BatchCompleteByUserIdResult>> callback
)
{
var task = new BatchCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.BatchCompleteByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.BatchCompleteByUserIdResult> BatchCompleteByUserIdFuture(
Request.BatchCompleteByUserIdRequest request
)
{
return new BatchCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.BatchCompleteByUserIdResult> BatchCompleteByUserIdAsync(
Request.BatchCompleteByUserIdRequest request
)
{
AsyncResult<Result.BatchCompleteByUserIdResult> result = null;
await BatchCompleteByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public BatchCompleteByUserIdTask BatchCompleteByUserIdAsync(
Request.BatchCompleteByUserIdRequest request
)
{
return new BatchCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.BatchCompleteByUserIdResult> BatchCompleteByUserIdAsync(
Request.BatchCompleteByUserIdRequest request
)
{
var task = new BatchCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class ReceiveByUserIdTask : Gs2RestSessionTask<ReceiveByUserIdRequest, ReceiveByUserIdResult>
{
public ReceiveByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, ReceiveByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(ReceiveByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/complete/group/{missionGroupName}/task/{missionTaskName}/receive";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{missionGroupName}", !string.IsNullOrEmpty(request.MissionGroupName) ? request.MissionGroupName.ToString() : "null");
url = url.Replace("{missionTaskName}", !string.IsNullOrEmpty(request.MissionTaskName) ? request.MissionTaskName.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.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 ReceiveByUserId(
Request.ReceiveByUserIdRequest request,
UnityAction<AsyncResult<Result.ReceiveByUserIdResult>> callback
)
{
var task = new ReceiveByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.ReceiveByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.ReceiveByUserIdResult> ReceiveByUserIdFuture(
Request.ReceiveByUserIdRequest request
)
{
return new ReceiveByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.ReceiveByUserIdResult> ReceiveByUserIdAsync(
Request.ReceiveByUserIdRequest request
)
{
AsyncResult<Result.ReceiveByUserIdResult> result = null;
await ReceiveByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public ReceiveByUserIdTask ReceiveByUserIdAsync(
Request.ReceiveByUserIdRequest request
)
{
return new ReceiveByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.ReceiveByUserIdResult> ReceiveByUserIdAsync(
Request.ReceiveByUserIdRequest request
)
{
var task = new ReceiveByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class BatchReceiveByUserIdTask : Gs2RestSessionTask<BatchReceiveByUserIdRequest, BatchReceiveByUserIdResult>
{
public BatchReceiveByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, BatchReceiveByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(BatchReceiveByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/complete/group/{missionGroupName}/task/any/receive/batch";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{missionGroupName}", !string.IsNullOrEmpty(request.MissionGroupName) ? request.MissionGroupName.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.MissionTaskNames != null)
{
jsonWriter.WritePropertyName("missionTaskNames");
jsonWriter.WriteArrayStart();
foreach(var item in request.MissionTaskNames)
{
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.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 BatchReceiveByUserId(
Request.BatchReceiveByUserIdRequest request,
UnityAction<AsyncResult<Result.BatchReceiveByUserIdResult>> callback
)
{
var task = new BatchReceiveByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.BatchReceiveByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.BatchReceiveByUserIdResult> BatchReceiveByUserIdFuture(
Request.BatchReceiveByUserIdRequest request
)
{
return new BatchReceiveByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.BatchReceiveByUserIdResult> BatchReceiveByUserIdAsync(
Request.BatchReceiveByUserIdRequest request
)
{
AsyncResult<Result.BatchReceiveByUserIdResult> result = null;
await BatchReceiveByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public BatchReceiveByUserIdTask BatchReceiveByUserIdAsync(
Request.BatchReceiveByUserIdRequest request
)
{
return new BatchReceiveByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.BatchReceiveByUserIdResult> BatchReceiveByUserIdAsync(
Request.BatchReceiveByUserIdRequest request
)
{
var task = new BatchReceiveByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class RevertReceiveByUserIdTask : Gs2RestSessionTask<RevertReceiveByUserIdRequest, RevertReceiveByUserIdResult>
{
public RevertReceiveByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, RevertReceiveByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(RevertReceiveByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/complete/group/{missionGroupName}/task/{missionTaskName}/revert";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{missionGroupName}", !string.IsNullOrEmpty(request.MissionGroupName) ? request.MissionGroupName.ToString() : "null");
url = url.Replace("{missionTaskName}", !string.IsNullOrEmpty(request.MissionTaskName) ? request.MissionTaskName.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.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 RevertReceiveByUserId(
Request.RevertReceiveByUserIdRequest request,
UnityAction<AsyncResult<Result.RevertReceiveByUserIdResult>> callback
)
{
var task = new RevertReceiveByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.RevertReceiveByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.RevertReceiveByUserIdResult> RevertReceiveByUserIdFuture(
Request.RevertReceiveByUserIdRequest request
)
{
return new RevertReceiveByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.RevertReceiveByUserIdResult> RevertReceiveByUserIdAsync(
Request.RevertReceiveByUserIdRequest request
)
{
AsyncResult<Result.RevertReceiveByUserIdResult> result = null;
await RevertReceiveByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public RevertReceiveByUserIdTask RevertReceiveByUserIdAsync(
Request.RevertReceiveByUserIdRequest request
)
{
return new RevertReceiveByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.RevertReceiveByUserIdResult> RevertReceiveByUserIdAsync(
Request.RevertReceiveByUserIdRequest request
)
{
var task = new RevertReceiveByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class GetCompleteTask : Gs2RestSessionTask<GetCompleteRequest, GetCompleteResult>
{
public GetCompleteTask(IGs2Session session, RestSessionRequestFactory factory, GetCompleteRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(GetCompleteRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/me/complete/group/{missionGroupName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{missionGroupName}", !string.IsNullOrEmpty(request.MissionGroupName) ? request.MissionGroupName.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 GetComplete(
Request.GetCompleteRequest request,
UnityAction<AsyncResult<Result.GetCompleteResult>> callback
)
{
var task = new GetCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.GetCompleteResult>(task.Result, task.Error));
}
public IFuture<Result.GetCompleteResult> GetCompleteFuture(
Request.GetCompleteRequest request
)
{
return new GetCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.GetCompleteResult> GetCompleteAsync(
Request.GetCompleteRequest request
)
{
AsyncResult<Result.GetCompleteResult> result = null;
await GetComplete(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public GetCompleteTask GetCompleteAsync(
Request.GetCompleteRequest request
)
{
return new GetCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.GetCompleteResult> GetCompleteAsync(
Request.GetCompleteRequest request
)
{
var task = new GetCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class GetCompleteByUserIdTask : Gs2RestSessionTask<GetCompleteByUserIdRequest, GetCompleteByUserIdResult>
{
public GetCompleteByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, GetCompleteByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(GetCompleteByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/complete/group/{missionGroupName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{missionGroupName}", !string.IsNullOrEmpty(request.MissionGroupName) ? request.MissionGroupName.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 GetCompleteByUserId(
Request.GetCompleteByUserIdRequest request,
UnityAction<AsyncResult<Result.GetCompleteByUserIdResult>> callback
)
{
var task = new GetCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.GetCompleteByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.GetCompleteByUserIdResult> GetCompleteByUserIdFuture(
Request.GetCompleteByUserIdRequest request
)
{
return new GetCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.GetCompleteByUserIdResult> GetCompleteByUserIdAsync(
Request.GetCompleteByUserIdRequest request
)
{
AsyncResult<Result.GetCompleteByUserIdResult> result = null;
await GetCompleteByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public GetCompleteByUserIdTask GetCompleteByUserIdAsync(
Request.GetCompleteByUserIdRequest request
)
{
return new GetCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.GetCompleteByUserIdResult> GetCompleteByUserIdAsync(
Request.GetCompleteByUserIdRequest request
)
{
var task = new GetCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class EvaluateCompleteTask : Gs2RestSessionTask<EvaluateCompleteRequest, EvaluateCompleteResult>
{
public EvaluateCompleteTask(IGs2Session session, RestSessionRequestFactory factory, EvaluateCompleteRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(EvaluateCompleteRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/me/complete/group/{missionGroupName}/eval";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{missionGroupName}", !string.IsNullOrEmpty(request.MissionGroupName) ? request.MissionGroupName.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.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 EvaluateComplete(
Request.EvaluateCompleteRequest request,
UnityAction<AsyncResult<Result.EvaluateCompleteResult>> callback
)
{
var task = new EvaluateCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.EvaluateCompleteResult>(task.Result, task.Error));
}
public IFuture<Result.EvaluateCompleteResult> EvaluateCompleteFuture(
Request.EvaluateCompleteRequest request
)
{
return new EvaluateCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.EvaluateCompleteResult> EvaluateCompleteAsync(
Request.EvaluateCompleteRequest request
)
{
AsyncResult<Result.EvaluateCompleteResult> result = null;
await EvaluateComplete(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public EvaluateCompleteTask EvaluateCompleteAsync(
Request.EvaluateCompleteRequest request
)
{
return new EvaluateCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.EvaluateCompleteResult> EvaluateCompleteAsync(
Request.EvaluateCompleteRequest request
)
{
var task = new EvaluateCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class EvaluateCompleteByUserIdTask : Gs2RestSessionTask<EvaluateCompleteByUserIdRequest, EvaluateCompleteByUserIdResult>
{
public EvaluateCompleteByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, EvaluateCompleteByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(EvaluateCompleteByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/complete/group/{missionGroupName}/eval";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
url = url.Replace("{missionGroupName}", !string.IsNullOrEmpty(request.MissionGroupName) ? request.MissionGroupName.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.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 EvaluateCompleteByUserId(
Request.EvaluateCompleteByUserIdRequest request,
UnityAction<AsyncResult<Result.EvaluateCompleteByUserIdResult>> callback
)
{
var task = new EvaluateCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.EvaluateCompleteByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.EvaluateCompleteByUserIdResult> EvaluateCompleteByUserIdFuture(
Request.EvaluateCompleteByUserIdRequest request
)
{
return new EvaluateCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.EvaluateCompleteByUserIdResult> EvaluateCompleteByUserIdAsync(
Request.EvaluateCompleteByUserIdRequest request
)
{
AsyncResult<Result.EvaluateCompleteByUserIdResult> result = null;
await EvaluateCompleteByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public EvaluateCompleteByUserIdTask EvaluateCompleteByUserIdAsync(
Request.EvaluateCompleteByUserIdRequest request
)
{
return new EvaluateCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.EvaluateCompleteByUserIdResult> EvaluateCompleteByUserIdAsync(
Request.EvaluateCompleteByUserIdRequest request
)
{
var task = new EvaluateCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DeleteCompleteByUserIdTask : Gs2RestSessionTask<DeleteCompleteByUserIdRequest, DeleteCompleteByUserIdResult>
{
public DeleteCompleteByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, DeleteCompleteByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DeleteCompleteByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/complete/group/{missionGroupName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
url = url.Replace("{missionGroupName}", !string.IsNullOrEmpty(request.MissionGroupName) ? request.MissionGroupName.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 DeleteCompleteByUserId(
Request.DeleteCompleteByUserIdRequest request,
UnityAction<AsyncResult<Result.DeleteCompleteByUserIdResult>> callback
)
{
var task = new DeleteCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DeleteCompleteByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.DeleteCompleteByUserIdResult> DeleteCompleteByUserIdFuture(
Request.DeleteCompleteByUserIdRequest request
)
{
return new DeleteCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DeleteCompleteByUserIdResult> DeleteCompleteByUserIdAsync(
Request.DeleteCompleteByUserIdRequest request
)
{
AsyncResult<Result.DeleteCompleteByUserIdResult> result = null;
await DeleteCompleteByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DeleteCompleteByUserIdTask DeleteCompleteByUserIdAsync(
Request.DeleteCompleteByUserIdRequest request
)
{
return new DeleteCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DeleteCompleteByUserIdResult> DeleteCompleteByUserIdAsync(
Request.DeleteCompleteByUserIdRequest request
)
{
var task = new DeleteCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class VerifyCompleteTask : Gs2RestSessionTask<VerifyCompleteRequest, VerifyCompleteResult>
{
public VerifyCompleteTask(IGs2Session session, RestSessionRequestFactory factory, VerifyCompleteRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(VerifyCompleteRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/me/complete/group/{missionGroupName}/task/{missionTaskName}/verify/{verifyType}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{missionGroupName}", !string.IsNullOrEmpty(request.MissionGroupName) ? request.MissionGroupName.ToString() : "null");
url = url.Replace("{verifyType}", !string.IsNullOrEmpty(request.VerifyType) ? request.VerifyType.ToString() : "null");
url = url.Replace("{missionTaskName}", !string.IsNullOrEmpty(request.MissionTaskName) ? request.MissionTaskName.ToString() : "null");
url = url.Replace("{multiplyValueSpecifyingQuantity}",request.MultiplyValueSpecifyingQuantity != null ? request.MultiplyValueSpecifyingQuantity.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.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 VerifyComplete(
Request.VerifyCompleteRequest request,
UnityAction<AsyncResult<Result.VerifyCompleteResult>> callback
)
{
var task = new VerifyCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.VerifyCompleteResult>(task.Result, task.Error));
}
public IFuture<Result.VerifyCompleteResult> VerifyCompleteFuture(
Request.VerifyCompleteRequest request
)
{
return new VerifyCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.VerifyCompleteResult> VerifyCompleteAsync(
Request.VerifyCompleteRequest request
)
{
AsyncResult<Result.VerifyCompleteResult> result = null;
await VerifyComplete(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public VerifyCompleteTask VerifyCompleteAsync(
Request.VerifyCompleteRequest request
)
{
return new VerifyCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.VerifyCompleteResult> VerifyCompleteAsync(
Request.VerifyCompleteRequest request
)
{
var task = new VerifyCompleteTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class VerifyCompleteByUserIdTask : Gs2RestSessionTask<VerifyCompleteByUserIdRequest, VerifyCompleteByUserIdResult>
{
public VerifyCompleteByUserIdTask(IGs2Session session, RestSessionRequestFactory factory, VerifyCompleteByUserIdRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(VerifyCompleteByUserIdRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/user/{userId}/complete/group/{missionGroupName}/task/{missionTaskName}/verify/{verifyType}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{missionGroupName}", !string.IsNullOrEmpty(request.MissionGroupName) ? request.MissionGroupName.ToString() : "null");
url = url.Replace("{userId}", !string.IsNullOrEmpty(request.UserId) ? request.UserId.ToString() : "null");
url = url.Replace("{verifyType}", !string.IsNullOrEmpty(request.VerifyType) ? request.VerifyType.ToString() : "null");
url = url.Replace("{missionTaskName}", !string.IsNullOrEmpty(request.MissionTaskName) ? request.MissionTaskName.ToString() : "null");
url = url.Replace("{multiplyValueSpecifyingQuantity}",request.MultiplyValueSpecifyingQuantity != null ? request.MultiplyValueSpecifyingQuantity.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.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 VerifyCompleteByUserId(
Request.VerifyCompleteByUserIdRequest request,
UnityAction<AsyncResult<Result.VerifyCompleteByUserIdResult>> callback
)
{
var task = new VerifyCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.VerifyCompleteByUserIdResult>(task.Result, task.Error));
}
public IFuture<Result.VerifyCompleteByUserIdResult> VerifyCompleteByUserIdFuture(
Request.VerifyCompleteByUserIdRequest request
)
{
return new VerifyCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.VerifyCompleteByUserIdResult> VerifyCompleteByUserIdAsync(
Request.VerifyCompleteByUserIdRequest request
)
{
AsyncResult<Result.VerifyCompleteByUserIdResult> result = null;
await VerifyCompleteByUserId(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public VerifyCompleteByUserIdTask VerifyCompleteByUserIdAsync(
Request.VerifyCompleteByUserIdRequest request
)
{
return new VerifyCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.VerifyCompleteByUserIdResult> VerifyCompleteByUserIdAsync(
Request.VerifyCompleteByUserIdRequest request
)
{
var task = new VerifyCompleteByUserIdTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class ReceiveByStampTaskTask : Gs2RestSessionTask<ReceiveByStampTaskRequest, ReceiveByStampTaskResult>
{
public ReceiveByStampTaskTask(IGs2Session session, RestSessionRequestFactory factory, ReceiveByStampTaskRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(ReceiveByStampTaskRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/stamp/receive";
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 ReceiveByStampTask(
Request.ReceiveByStampTaskRequest request,
UnityAction<AsyncResult<Result.ReceiveByStampTaskResult>> callback
)
{
var task = new ReceiveByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.ReceiveByStampTaskResult>(task.Result, task.Error));
}
public IFuture<Result.ReceiveByStampTaskResult> ReceiveByStampTaskFuture(
Request.ReceiveByStampTaskRequest request
)
{
return new ReceiveByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.ReceiveByStampTaskResult> ReceiveByStampTaskAsync(
Request.ReceiveByStampTaskRequest request
)
{
AsyncResult<Result.ReceiveByStampTaskResult> result = null;
await ReceiveByStampTask(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public ReceiveByStampTaskTask ReceiveByStampTaskAsync(
Request.ReceiveByStampTaskRequest request
)
{
return new ReceiveByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.ReceiveByStampTaskResult> ReceiveByStampTaskAsync(
Request.ReceiveByStampTaskRequest request
)
{
var task = new ReceiveByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class BatchReceiveByStampTaskTask : Gs2RestSessionTask<BatchReceiveByStampTaskRequest, BatchReceiveByStampTaskResult>
{
public BatchReceiveByStampTaskTask(IGs2Session session, RestSessionRequestFactory factory, BatchReceiveByStampTaskRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(BatchReceiveByStampTaskRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/stamp/receive/batch";
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 BatchReceiveByStampTask(
Request.BatchReceiveByStampTaskRequest request,
UnityAction<AsyncResult<Result.BatchReceiveByStampTaskResult>> callback
)
{
var task = new BatchReceiveByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.BatchReceiveByStampTaskResult>(task.Result, task.Error));
}
public IFuture<Result.BatchReceiveByStampTaskResult> BatchReceiveByStampTaskFuture(
Request.BatchReceiveByStampTaskRequest request
)
{
return new BatchReceiveByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.BatchReceiveByStampTaskResult> BatchReceiveByStampTaskAsync(
Request.BatchReceiveByStampTaskRequest request
)
{
AsyncResult<Result.BatchReceiveByStampTaskResult> result = null;
await BatchReceiveByStampTask(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public BatchReceiveByStampTaskTask BatchReceiveByStampTaskAsync(
Request.BatchReceiveByStampTaskRequest request
)
{
return new BatchReceiveByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.BatchReceiveByStampTaskResult> BatchReceiveByStampTaskAsync(
Request.BatchReceiveByStampTaskRequest request
)
{
var task = new BatchReceiveByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class RevertReceiveByStampSheetTask : Gs2RestSessionTask<RevertReceiveByStampSheetRequest, RevertReceiveByStampSheetResult>
{
public RevertReceiveByStampSheetTask(IGs2Session session, RestSessionRequestFactory factory, RevertReceiveByStampSheetRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(RevertReceiveByStampSheetRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/stamp/revert";
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 RevertReceiveByStampSheet(
Request.RevertReceiveByStampSheetRequest request,
UnityAction<AsyncResult<Result.RevertReceiveByStampSheetResult>> callback
)
{
var task = new RevertReceiveByStampSheetTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.RevertReceiveByStampSheetResult>(task.Result, task.Error));
}
public IFuture<Result.RevertReceiveByStampSheetResult> RevertReceiveByStampSheetFuture(
Request.RevertReceiveByStampSheetRequest request
)
{
return new RevertReceiveByStampSheetTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.RevertReceiveByStampSheetResult> RevertReceiveByStampSheetAsync(
Request.RevertReceiveByStampSheetRequest request
)
{
AsyncResult<Result.RevertReceiveByStampSheetResult> result = null;
await RevertReceiveByStampSheet(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public RevertReceiveByStampSheetTask RevertReceiveByStampSheetAsync(
Request.RevertReceiveByStampSheetRequest request
)
{
return new RevertReceiveByStampSheetTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.RevertReceiveByStampSheetResult> RevertReceiveByStampSheetAsync(
Request.RevertReceiveByStampSheetRequest request
)
{
var task = new RevertReceiveByStampSheetTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class VerifyCompleteByStampTaskTask : Gs2RestSessionTask<VerifyCompleteByStampTaskRequest, VerifyCompleteByStampTaskResult>
{
public VerifyCompleteByStampTaskTask(IGs2Session session, RestSessionRequestFactory factory, VerifyCompleteByStampTaskRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(VerifyCompleteByStampTaskRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/stamp/complete/verify";
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 VerifyCompleteByStampTask(
Request.VerifyCompleteByStampTaskRequest request,
UnityAction<AsyncResult<Result.VerifyCompleteByStampTaskResult>> callback
)
{
var task = new VerifyCompleteByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.VerifyCompleteByStampTaskResult>(task.Result, task.Error));
}
public IFuture<Result.VerifyCompleteByStampTaskResult> VerifyCompleteByStampTaskFuture(
Request.VerifyCompleteByStampTaskRequest request
)
{
return new VerifyCompleteByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.VerifyCompleteByStampTaskResult> VerifyCompleteByStampTaskAsync(
Request.VerifyCompleteByStampTaskRequest request
)
{
AsyncResult<Result.VerifyCompleteByStampTaskResult> result = null;
await VerifyCompleteByStampTask(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public VerifyCompleteByStampTaskTask VerifyCompleteByStampTaskAsync(
Request.VerifyCompleteByStampTaskRequest request
)
{
return new VerifyCompleteByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.VerifyCompleteByStampTaskResult> VerifyCompleteByStampTaskAsync(
Request.VerifyCompleteByStampTaskRequest request
)
{
var task = new VerifyCompleteByStampTaskTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DescribeCounterModelMastersTask : Gs2RestSessionTask<DescribeCounterModelMastersRequest, DescribeCounterModelMastersResult>
{
public DescribeCounterModelMastersTask(IGs2Session session, RestSessionRequestFactory factory, DescribeCounterModelMastersRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DescribeCounterModelMastersRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/counter";
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.NamePrefix != null) {
sessionRequest.AddQueryString("namePrefix", $"{request.NamePrefix}");
}
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 DescribeCounterModelMasters(
Request.DescribeCounterModelMastersRequest request,
UnityAction<AsyncResult<Result.DescribeCounterModelMastersResult>> callback
)
{
var task = new DescribeCounterModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DescribeCounterModelMastersResult>(task.Result, task.Error));
}
public IFuture<Result.DescribeCounterModelMastersResult> DescribeCounterModelMastersFuture(
Request.DescribeCounterModelMastersRequest request
)
{
return new DescribeCounterModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DescribeCounterModelMastersResult> DescribeCounterModelMastersAsync(
Request.DescribeCounterModelMastersRequest request
)
{
AsyncResult<Result.DescribeCounterModelMastersResult> result = null;
await DescribeCounterModelMasters(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DescribeCounterModelMastersTask DescribeCounterModelMastersAsync(
Request.DescribeCounterModelMastersRequest request
)
{
return new DescribeCounterModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DescribeCounterModelMastersResult> DescribeCounterModelMastersAsync(
Request.DescribeCounterModelMastersRequest request
)
{
var task = new DescribeCounterModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class CreateCounterModelMasterTask : Gs2RestSessionTask<CreateCounterModelMasterRequest, CreateCounterModelMasterResult>
{
public CreateCounterModelMasterTask(IGs2Session session, RestSessionRequestFactory factory, CreateCounterModelMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(CreateCounterModelMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/counter";
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.Metadata != null)
{
jsonWriter.WritePropertyName("metadata");
jsonWriter.Write(request.Metadata);
}
if (request.Description != null)
{
jsonWriter.WritePropertyName("description");
jsonWriter.Write(request.Description);
}
if (request.Scopes != null)
{
jsonWriter.WritePropertyName("scopes");
jsonWriter.WriteArrayStart();
foreach(var item in request.Scopes)
{
item.WriteJson(jsonWriter);
}
jsonWriter.WriteArrayEnd();
}
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 CreateCounterModelMaster(
Request.CreateCounterModelMasterRequest request,
UnityAction<AsyncResult<Result.CreateCounterModelMasterResult>> callback
)
{
var task = new CreateCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.CreateCounterModelMasterResult>(task.Result, task.Error));
}
public IFuture<Result.CreateCounterModelMasterResult> CreateCounterModelMasterFuture(
Request.CreateCounterModelMasterRequest request
)
{
return new CreateCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.CreateCounterModelMasterResult> CreateCounterModelMasterAsync(
Request.CreateCounterModelMasterRequest request
)
{
AsyncResult<Result.CreateCounterModelMasterResult> result = null;
await CreateCounterModelMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public CreateCounterModelMasterTask CreateCounterModelMasterAsync(
Request.CreateCounterModelMasterRequest request
)
{
return new CreateCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.CreateCounterModelMasterResult> CreateCounterModelMasterAsync(
Request.CreateCounterModelMasterRequest request
)
{
var task = new CreateCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class GetCounterModelMasterTask : Gs2RestSessionTask<GetCounterModelMasterRequest, GetCounterModelMasterResult>
{
public GetCounterModelMasterTask(IGs2Session session, RestSessionRequestFactory factory, GetCounterModelMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(GetCounterModelMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/counter/{counterName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{counterName}", !string.IsNullOrEmpty(request.CounterName) ? request.CounterName.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 GetCounterModelMaster(
Request.GetCounterModelMasterRequest request,
UnityAction<AsyncResult<Result.GetCounterModelMasterResult>> callback
)
{
var task = new GetCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.GetCounterModelMasterResult>(task.Result, task.Error));
}
public IFuture<Result.GetCounterModelMasterResult> GetCounterModelMasterFuture(
Request.GetCounterModelMasterRequest request
)
{
return new GetCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.GetCounterModelMasterResult> GetCounterModelMasterAsync(
Request.GetCounterModelMasterRequest request
)
{
AsyncResult<Result.GetCounterModelMasterResult> result = null;
await GetCounterModelMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public GetCounterModelMasterTask GetCounterModelMasterAsync(
Request.GetCounterModelMasterRequest request
)
{
return new GetCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.GetCounterModelMasterResult> GetCounterModelMasterAsync(
Request.GetCounterModelMasterRequest request
)
{
var task = new GetCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class UpdateCounterModelMasterTask : Gs2RestSessionTask<UpdateCounterModelMasterRequest, UpdateCounterModelMasterResult>
{
public UpdateCounterModelMasterTask(IGs2Session session, RestSessionRequestFactory factory, UpdateCounterModelMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(UpdateCounterModelMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/counter/{counterName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{counterName}", !string.IsNullOrEmpty(request.CounterName) ? request.CounterName.ToString() : "null");
var sessionRequest = Factory.Put(url);
var stringBuilder = new StringBuilder();
var jsonWriter = new JsonWriter(stringBuilder);
jsonWriter.WriteObjectStart();
if (request.Metadata != null)
{
jsonWriter.WritePropertyName("metadata");
jsonWriter.Write(request.Metadata);
}
if (request.Description != null)
{
jsonWriter.WritePropertyName("description");
jsonWriter.Write(request.Description);
}
if (request.Scopes != null)
{
jsonWriter.WritePropertyName("scopes");
jsonWriter.WriteArrayStart();
foreach(var item in request.Scopes)
{
item.WriteJson(jsonWriter);
}
jsonWriter.WriteArrayEnd();
}
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 UpdateCounterModelMaster(
Request.UpdateCounterModelMasterRequest request,
UnityAction<AsyncResult<Result.UpdateCounterModelMasterResult>> callback
)
{
var task = new UpdateCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.UpdateCounterModelMasterResult>(task.Result, task.Error));
}
public IFuture<Result.UpdateCounterModelMasterResult> UpdateCounterModelMasterFuture(
Request.UpdateCounterModelMasterRequest request
)
{
return new UpdateCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.UpdateCounterModelMasterResult> UpdateCounterModelMasterAsync(
Request.UpdateCounterModelMasterRequest request
)
{
AsyncResult<Result.UpdateCounterModelMasterResult> result = null;
await UpdateCounterModelMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public UpdateCounterModelMasterTask UpdateCounterModelMasterAsync(
Request.UpdateCounterModelMasterRequest request
)
{
return new UpdateCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.UpdateCounterModelMasterResult> UpdateCounterModelMasterAsync(
Request.UpdateCounterModelMasterRequest request
)
{
var task = new UpdateCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DeleteCounterModelMasterTask : Gs2RestSessionTask<DeleteCounterModelMasterRequest, DeleteCounterModelMasterResult>
{
public DeleteCounterModelMasterTask(IGs2Session session, RestSessionRequestFactory factory, DeleteCounterModelMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DeleteCounterModelMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.Replace("{region}", Session.Region.DisplayName())
+ "/{namespaceName}/master/counter/{counterName}";
url = url.Replace("{namespaceName}", !string.IsNullOrEmpty(request.NamespaceName) ? request.NamespaceName.ToString() : "null");
url = url.Replace("{counterName}", !string.IsNullOrEmpty(request.CounterName) ? request.CounterName.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 DeleteCounterModelMaster(
Request.DeleteCounterModelMasterRequest request,
UnityAction<AsyncResult<Result.DeleteCounterModelMasterResult>> callback
)
{
var task = new DeleteCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DeleteCounterModelMasterResult>(task.Result, task.Error));
}
public IFuture<Result.DeleteCounterModelMasterResult> DeleteCounterModelMasterFuture(
Request.DeleteCounterModelMasterRequest request
)
{
return new DeleteCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DeleteCounterModelMasterResult> DeleteCounterModelMasterAsync(
Request.DeleteCounterModelMasterRequest request
)
{
AsyncResult<Result.DeleteCounterModelMasterResult> result = null;
await DeleteCounterModelMaster(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DeleteCounterModelMasterTask DeleteCounterModelMasterAsync(
Request.DeleteCounterModelMasterRequest request
)
{
return new DeleteCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DeleteCounterModelMasterResult> DeleteCounterModelMasterAsync(
Request.DeleteCounterModelMasterRequest request
)
{
var task = new DeleteCounterModelMasterTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class DescribeMissionGroupModelMastersTask : Gs2RestSessionTask<DescribeMissionGroupModelMastersRequest, DescribeMissionGroupModelMastersResult>
{
public DescribeMissionGroupModelMastersTask(IGs2Session session, RestSessionRequestFactory factory, DescribeMissionGroupModelMastersRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(DescribeMissionGroupModelMastersRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.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.NamePrefix != null) {
sessionRequest.AddQueryString("namePrefix", $"{request.NamePrefix}");
}
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 DescribeMissionGroupModelMasters(
Request.DescribeMissionGroupModelMastersRequest request,
UnityAction<AsyncResult<Result.DescribeMissionGroupModelMastersResult>> callback
)
{
var task = new DescribeMissionGroupModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
yield return task;
callback.Invoke(new AsyncResult<Result.DescribeMissionGroupModelMastersResult>(task.Result, task.Error));
}
public IFuture<Result.DescribeMissionGroupModelMastersResult> DescribeMissionGroupModelMastersFuture(
Request.DescribeMissionGroupModelMastersRequest request
)
{
return new DescribeMissionGroupModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#if GS2_ENABLE_UNITASK
public async UniTask<Result.DescribeMissionGroupModelMastersResult> DescribeMissionGroupModelMastersAsync(
Request.DescribeMissionGroupModelMastersRequest request
)
{
AsyncResult<Result.DescribeMissionGroupModelMastersResult> result = null;
await DescribeMissionGroupModelMasters(
request,
r => result = r
);
if (result.Error != null)
{
throw result.Error;
}
return result.Result;
}
#else
public DescribeMissionGroupModelMastersTask DescribeMissionGroupModelMastersAsync(
Request.DescribeMissionGroupModelMastersRequest request
)
{
return new DescribeMissionGroupModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new UnityRestSessionRequest(_certificateHandler)),
request
);
}
#endif
#else
public async Task<Result.DescribeMissionGroupModelMastersResult> DescribeMissionGroupModelMastersAsync(
Request.DescribeMissionGroupModelMastersRequest request
)
{
var task = new DescribeMissionGroupModelMastersTask(
Gs2RestSession,
new RestSessionRequestFactory(() => new DotNetRestSessionRequest()),
request
);
return await task.Invoke();
}
#endif
public class CreateMissionGroupModelMasterTask : Gs2RestSessionTask<CreateMissionGroupModelMasterRequest, CreateMissionGroupModelMasterResult>
{
public CreateMissionGroupModelMasterTask(IGs2Session session, RestSessionRequestFactory factory, CreateMissionGroupModelMasterRequest request) : base(session, factory, request)
{
}
protected override IGs2SessionRequest CreateRequest(CreateMissionGroupModelMasterRequest request)
{
var url = Gs2RestSession.EndpointHost
.Replace("{service}", "mission")
.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.Metadata != null)
{
jsonWriter.WritePropertyName("metadata");
jsonWriter.Write(request.Metadata);
}
if (request.Description != null)
{
jsonWriter.WritePropertyName("description");
jsonWriter.Write(request.Description);
}
if (request.ResetType != null)
{
jsonWriter.WritePropertyName("resetType");
jsonWriter.Write(request.ResetType);
}
if (request.ResetDayOfMonth != null)
{
jsonWriter.WritePropertyName("resetDayOfMonth");
jsonWriter.Write(request.ResetDayOfMonth.ToString());
}
if (request.ResetDayOfWeek != null)
{
jsonWriter.WritePropertyName("resetDayOfWeek");
jso