All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.gs2.limit.Gs2LimitRestClient Maven / Gradle / Ivy

The newest version!
/*
 * 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.
 */

package io.gs2.limit;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.json.JSONObject;
import org.json.JSONArray;

import io.gs2.model.AsyncAction;
import io.gs2.model.AsyncResult;
import io.gs2.exception.*;
import io.gs2.net.*;
import io.gs2.util.EncodingUtil;

import io.gs2.AbstractGs2Client;
import io.gs2.limit.request.*;
import io.gs2.limit.result.*;
import io.gs2.limit.model.*;

/**
 * GS2 Limit API クライアント
 *
 * @author Game Server Services, Inc.
 *
 */
public class Gs2LimitRestClient extends AbstractGs2Client {

	/**
	 * コンストラクタ。
	 *
	 * @param gs2RestSession セッション
	 */
	public Gs2LimitRestClient(Gs2RestSession gs2RestSession) {
		super(gs2RestSession);
	}

    class DescribeNamespacesTask extends Gs2RestSessionTask {
        private DescribeNamespacesRequest request;

        public DescribeNamespacesTask(
            DescribeNamespacesRequest request,
            AsyncAction> userCallback,
            Class clazz
        ) {
            super(
                    (Gs2RestSession) session,
                    userCallback,
                    clazz
            );
            this.request = request;
        }

        @Override
        protected void executeImpl() {

            String url = Gs2RestSession.EndpointHost
                .replace("{service}", "limit")
                .replace("{region}", session.getRegion().getName())
                + "/";

            List queryStrings = new ArrayList<> ();
            if (this.request.getContextStack() != null) {
                queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
            }
            if (this.request.getPageToken() != null) {
                queryStrings.add("pageToken=" + EncodingUtil.urlEncode((String.valueOf(this.request.getPageToken()))));
            }
            if (this.request.getLimit() != null) {
                queryStrings.add("limit=" + String.valueOf(this.request.getLimit()));
            }
            url += "?" + String.join("&", queryStrings);

            builder
                .setMethod(HttpTask.Method.GET)
                .setUrl(url)
                .setHeader("Content-Type", "application/json")
                .setHttpResponseHandler(this);

            if (this.request.getRequestId() != null) {
                builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
            }

            builder
                .build()
                .send();
        }
    }

    /**
     * ネームスペースの一覧を取得
* * @param callback コールバック * @param request リクエストパラメータ */ public void describeNamespacesAsync( DescribeNamespacesRequest request, AsyncAction> callback ) { DescribeNamespacesTask task = new DescribeNamespacesTask(request, callback, DescribeNamespacesResult.class); session.execute(task); } /** * ネームスペースの一覧を取得
* * @param request リクエストパラメータ */ public DescribeNamespacesResult describeNamespaces( DescribeNamespacesRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; describeNamespacesAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class CreateNamespaceTask extends Gs2RestSessionTask { private CreateNamespaceRequest request; public CreateNamespaceTask( CreateNamespaceRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/"; ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getName() != null) { json.put("name", this.request.getName()); } if (this.request.getDescription() != null) { json.put("description", this.request.getDescription()); } if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.POST) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * ネームスペースを新規作成
* * @param callback コールバック * @param request リクエストパラメータ */ public void createNamespaceAsync( CreateNamespaceRequest request, AsyncAction> callback ) { CreateNamespaceTask task = new CreateNamespaceTask(request, callback, CreateNamespaceResult.class); session.execute(task); } /** * ネームスペースを新規作成
* * @param request リクエストパラメータ */ public CreateNamespaceResult createNamespace( CreateNamespaceRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; createNamespaceAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class GetNamespaceStatusTask extends Gs2RestSessionTask { private GetNamespaceStatusRequest request; public GetNamespaceStatusTask( GetNamespaceStatusRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/status"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * ネームスペースの状態を取得
* * @param callback コールバック * @param request リクエストパラメータ */ public void getNamespaceStatusAsync( GetNamespaceStatusRequest request, AsyncAction> callback ) { GetNamespaceStatusTask task = new GetNamespaceStatusTask(request, callback, GetNamespaceStatusResult.class); session.execute(task); } /** * ネームスペースの状態を取得
* * @param request リクエストパラメータ */ public GetNamespaceStatusResult getNamespaceStatus( GetNamespaceStatusRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; getNamespaceStatusAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class GetNamespaceTask extends Gs2RestSessionTask { private GetNamespaceRequest request; public GetNamespaceTask( GetNamespaceRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * ネームスペースを取得
* * @param callback コールバック * @param request リクエストパラメータ */ public void getNamespaceAsync( GetNamespaceRequest request, AsyncAction> callback ) { GetNamespaceTask task = new GetNamespaceTask(request, callback, GetNamespaceResult.class); session.execute(task); } /** * ネームスペースを取得
* * @param request リクエストパラメータ */ public GetNamespaceResult getNamespace( GetNamespaceRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; getNamespaceAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class UpdateNamespaceTask extends Gs2RestSessionTask { private UpdateNamespaceRequest request; public UpdateNamespaceTask( UpdateNamespaceRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getDescription() != null) { json.put("description", this.request.getDescription()); } if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.PUT) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * ネームスペースを更新
* * @param callback コールバック * @param request リクエストパラメータ */ public void updateNamespaceAsync( UpdateNamespaceRequest request, AsyncAction> callback ) { UpdateNamespaceTask task = new UpdateNamespaceTask(request, callback, UpdateNamespaceResult.class); session.execute(task); } /** * ネームスペースを更新
* * @param request リクエストパラメータ */ public UpdateNamespaceResult updateNamespace( UpdateNamespaceRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; updateNamespaceAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DeleteNamespaceTask extends Gs2RestSessionTask { private DeleteNamespaceRequest request; public DeleteNamespaceTask( DeleteNamespaceRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.DELETE) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * ネームスペースを削除
* * @param callback コールバック * @param request リクエストパラメータ */ public void deleteNamespaceAsync( DeleteNamespaceRequest request, AsyncAction> callback ) { DeleteNamespaceTask task = new DeleteNamespaceTask(request, callback, DeleteNamespaceResult.class); session.execute(task); } /** * ネームスペースを削除
* * @param request リクエストパラメータ */ public DeleteNamespaceResult deleteNamespace( DeleteNamespaceRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; deleteNamespaceAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DescribeCountersTask extends Gs2RestSessionTask { private DescribeCountersRequest request; public DescribeCountersTask( DescribeCountersRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/user/me/counter"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } if (this.request.getLimitName() != null) { queryStrings.add("limitName=" + EncodingUtil.urlEncode((String.valueOf(this.request.getLimitName())))); } if (this.request.getPageToken() != null) { queryStrings.add("pageToken=" + EncodingUtil.urlEncode((String.valueOf(this.request.getPageToken())))); } if (this.request.getLimit() != null) { queryStrings.add("limit=" + String.valueOf(this.request.getLimit())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } if (this.request.getAccessToken() != null) { builder.setHeader("X-GS2-ACCESS-TOKEN", this.request.getAccessToken()); } if (this.request.getDuplicationAvoider() != null) { builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider()); } builder .build() .send(); } } /** * カウンターの一覧を取得
* * @param callback コールバック * @param request リクエストパラメータ */ public void describeCountersAsync( DescribeCountersRequest request, AsyncAction> callback ) { DescribeCountersTask task = new DescribeCountersTask(request, callback, DescribeCountersResult.class); session.execute(task); } /** * カウンターの一覧を取得
* * @param request リクエストパラメータ */ public DescribeCountersResult describeCounters( DescribeCountersRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; describeCountersAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DescribeCountersByUserIdTask extends Gs2RestSessionTask { private DescribeCountersByUserIdRequest request; public DescribeCountersByUserIdTask( DescribeCountersByUserIdRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/user/{userId}/counter"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); url = url.replace("{userId}", this.request.getUserId() == null|| this.request.getUserId().length() == 0 ? "null" : String.valueOf(this.request.getUserId())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } if (this.request.getLimitName() != null) { queryStrings.add("limitName=" + EncodingUtil.urlEncode((String.valueOf(this.request.getLimitName())))); } if (this.request.getPageToken() != null) { queryStrings.add("pageToken=" + EncodingUtil.urlEncode((String.valueOf(this.request.getPageToken())))); } if (this.request.getLimit() != null) { queryStrings.add("limit=" + String.valueOf(this.request.getLimit())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } if (this.request.getDuplicationAvoider() != null) { builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider()); } builder .build() .send(); } } /** * カウンターの一覧を取得
* * @param callback コールバック * @param request リクエストパラメータ */ public void describeCountersByUserIdAsync( DescribeCountersByUserIdRequest request, AsyncAction> callback ) { DescribeCountersByUserIdTask task = new DescribeCountersByUserIdTask(request, callback, DescribeCountersByUserIdResult.class); session.execute(task); } /** * カウンターの一覧を取得
* * @param request リクエストパラメータ */ public DescribeCountersByUserIdResult describeCountersByUserId( DescribeCountersByUserIdRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; describeCountersByUserIdAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class GetCounterTask extends Gs2RestSessionTask { private GetCounterRequest request; public GetCounterTask( GetCounterRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/user/me/counter/{limitName}/{counterName}"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName())); url = url.replace("{counterName}", this.request.getCounterName() == null|| this.request.getCounterName().length() == 0 ? "null" : String.valueOf(this.request.getCounterName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } if (this.request.getAccessToken() != null) { builder.setHeader("X-GS2-ACCESS-TOKEN", this.request.getAccessToken()); } if (this.request.getDuplicationAvoider() != null) { builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider()); } builder .build() .send(); } } /** * カウンターを取得
* * @param callback コールバック * @param request リクエストパラメータ */ public void getCounterAsync( GetCounterRequest request, AsyncAction> callback ) { GetCounterTask task = new GetCounterTask(request, callback, GetCounterResult.class); session.execute(task); } /** * カウンターを取得
* * @param request リクエストパラメータ */ public GetCounterResult getCounter( GetCounterRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; getCounterAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class GetCounterByUserIdTask extends Gs2RestSessionTask { private GetCounterByUserIdRequest request; public GetCounterByUserIdTask( GetCounterByUserIdRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/user/{userId}/counter/{limitName}/{counterName}"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName())); url = url.replace("{userId}", this.request.getUserId() == null|| this.request.getUserId().length() == 0 ? "null" : String.valueOf(this.request.getUserId())); url = url.replace("{counterName}", this.request.getCounterName() == null|| this.request.getCounterName().length() == 0 ? "null" : String.valueOf(this.request.getCounterName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } if (this.request.getDuplicationAvoider() != null) { builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider()); } builder .build() .send(); } } /** * ユーザIDを指定してカウンターを取得
* * @param callback コールバック * @param request リクエストパラメータ */ public void getCounterByUserIdAsync( GetCounterByUserIdRequest request, AsyncAction> callback ) { GetCounterByUserIdTask task = new GetCounterByUserIdTask(request, callback, GetCounterByUserIdResult.class); session.execute(task); } /** * ユーザIDを指定してカウンターを取得
* * @param request リクエストパラメータ */ public GetCounterByUserIdResult getCounterByUserId( GetCounterByUserIdRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; getCounterByUserIdAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class CountUpByUserIdTask extends Gs2RestSessionTask { private CountUpByUserIdRequest request; public CountUpByUserIdTask( CountUpByUserIdRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/user/{userId}/counter/{limitName}/{counterName}"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName())); url = url.replace("{counterName}", this.request.getCounterName() == null|| this.request.getCounterName().length() == 0 ? "null" : String.valueOf(this.request.getCounterName())); url = url.replace("{userId}", this.request.getUserId() == null|| this.request.getUserId().length() == 0 ? "null" : String.valueOf(this.request.getUserId())); ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getCountUpValue() != null) { json.put("countUpValue", this.request.getCountUpValue()); } if (this.request.getMaxValue() != null) { json.put("maxValue", this.request.getMaxValue()); } if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.POST) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } if (this.request.getDuplicationAvoider() != null) { builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider()); } builder .build() .send(); } } /** * ユーザIDを指定してカウントアップ
* * @param callback コールバック * @param request リクエストパラメータ */ public void countUpByUserIdAsync( CountUpByUserIdRequest request, AsyncAction> callback ) { CountUpByUserIdTask task = new CountUpByUserIdTask(request, callback, CountUpByUserIdResult.class); session.execute(task); } /** * ユーザIDを指定してカウントアップ
* * @param request リクエストパラメータ */ public CountUpByUserIdResult countUpByUserId( CountUpByUserIdRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; countUpByUserIdAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DeleteCounterByUserIdTask extends Gs2RestSessionTask { private DeleteCounterByUserIdRequest request; public DeleteCounterByUserIdTask( DeleteCounterByUserIdRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/user/{userId}/counter/{limitName}/{counterName}"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName())); url = url.replace("{userId}", this.request.getUserId() == null|| this.request.getUserId().length() == 0 ? "null" : String.valueOf(this.request.getUserId())); url = url.replace("{counterName}", this.request.getCounterName() == null|| this.request.getCounterName().length() == 0 ? "null" : String.valueOf(this.request.getCounterName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.DELETE) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } if (this.request.getDuplicationAvoider() != null) { builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider()); } builder .build() .send(); } } /** * ユーザIDを指定してカウンターを削除
* * @param callback コールバック * @param request リクエストパラメータ */ public void deleteCounterByUserIdAsync( DeleteCounterByUserIdRequest request, AsyncAction> callback ) { DeleteCounterByUserIdTask task = new DeleteCounterByUserIdTask(request, callback, DeleteCounterByUserIdResult.class); session.execute(task); } /** * ユーザIDを指定してカウンターを削除
* * @param request リクエストパラメータ */ public DeleteCounterByUserIdResult deleteCounterByUserId( DeleteCounterByUserIdRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; deleteCounterByUserIdAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class CountUpByStampTaskTask extends Gs2RestSessionTask { private CountUpByStampTaskRequest request; public CountUpByStampTaskTask( CountUpByStampTaskRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/stamp/counter/increase"; ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getStampTask() != null) { json.put("stampTask", this.request.getStampTask()); } if (this.request.getKeyId() != null) { json.put("keyId", this.request.getKeyId()); } if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.POST) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } if (this.request.getDuplicationAvoider() != null) { builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider()); } builder .build() .send(); } } /** * スタンプシートでカウントアップ
* * @param callback コールバック * @param request リクエストパラメータ */ public void countUpByStampTaskAsync( CountUpByStampTaskRequest request, AsyncAction> callback ) { CountUpByStampTaskTask task = new CountUpByStampTaskTask(request, callback, CountUpByStampTaskResult.class); session.execute(task); } /** * スタンプシートでカウントアップ
* * @param request リクエストパラメータ */ public CountUpByStampTaskResult countUpByStampTask( CountUpByStampTaskRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; countUpByStampTaskAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DeleteByStampSheetTask extends Gs2RestSessionTask { private DeleteByStampSheetRequest request; public DeleteByStampSheetTask( DeleteByStampSheetRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/stamp/counter/delete"; url = url.replace("{stampSheet}", this.request.getStampSheet() == null|| this.request.getStampSheet().length() == 0 ? "null" : String.valueOf(this.request.getStampSheet())); ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getKeyId() != null) { json.put("keyId", this.request.getKeyId()); } if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.POST) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } if (this.request.getDuplicationAvoider() != null) { builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider()); } builder .build() .send(); } } /** * スタンプシートでカウンターを削除
* * @param callback コールバック * @param request リクエストパラメータ */ public void deleteByStampSheetAsync( DeleteByStampSheetRequest request, AsyncAction> callback ) { DeleteByStampSheetTask task = new DeleteByStampSheetTask(request, callback, DeleteByStampSheetResult.class); session.execute(task); } /** * スタンプシートでカウンターを削除
* * @param request リクエストパラメータ */ public DeleteByStampSheetResult deleteByStampSheet( DeleteByStampSheetRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; deleteByStampSheetAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DescribeLimitModelMastersTask extends Gs2RestSessionTask { private DescribeLimitModelMastersRequest request; public DescribeLimitModelMastersTask( DescribeLimitModelMastersRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/master/limit"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } if (this.request.getPageToken() != null) { queryStrings.add("pageToken=" + EncodingUtil.urlEncode((String.valueOf(this.request.getPageToken())))); } if (this.request.getLimit() != null) { queryStrings.add("limit=" + String.valueOf(this.request.getLimit())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * 回数制限の種類マスターの一覧を取得
* * @param callback コールバック * @param request リクエストパラメータ */ public void describeLimitModelMastersAsync( DescribeLimitModelMastersRequest request, AsyncAction> callback ) { DescribeLimitModelMastersTask task = new DescribeLimitModelMastersTask(request, callback, DescribeLimitModelMastersResult.class); session.execute(task); } /** * 回数制限の種類マスターの一覧を取得
* * @param request リクエストパラメータ */ public DescribeLimitModelMastersResult describeLimitModelMasters( DescribeLimitModelMastersRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; describeLimitModelMastersAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class CreateLimitModelMasterTask extends Gs2RestSessionTask { private CreateLimitModelMasterRequest request; public CreateLimitModelMasterTask( CreateLimitModelMasterRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/master/limit"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getName() != null) { json.put("name", this.request.getName()); } if (this.request.getDescription() != null) { json.put("description", this.request.getDescription()); } if (this.request.getMetadata() != null) { json.put("metadata", this.request.getMetadata()); } if (this.request.getResetType() != null) { json.put("resetType", this.request.getResetType()); } if (this.request.getResetDayOfMonth() != null) { json.put("resetDayOfMonth", this.request.getResetDayOfMonth()); } if (this.request.getResetDayOfWeek() != null) { json.put("resetDayOfWeek", this.request.getResetDayOfWeek()); } if (this.request.getResetHour() != null) { json.put("resetHour", this.request.getResetHour()); } if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.POST) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * 回数制限の種類マスターを新規作成
* * @param callback コールバック * @param request リクエストパラメータ */ public void createLimitModelMasterAsync( CreateLimitModelMasterRequest request, AsyncAction> callback ) { CreateLimitModelMasterTask task = new CreateLimitModelMasterTask(request, callback, CreateLimitModelMasterResult.class); session.execute(task); } /** * 回数制限の種類マスターを新規作成
* * @param request リクエストパラメータ */ public CreateLimitModelMasterResult createLimitModelMaster( CreateLimitModelMasterRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; createLimitModelMasterAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class GetLimitModelMasterTask extends Gs2RestSessionTask { private GetLimitModelMasterRequest request; public GetLimitModelMasterTask( GetLimitModelMasterRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/master/limit/{limitName}"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * 回数制限の種類マスターを取得
* * @param callback コールバック * @param request リクエストパラメータ */ public void getLimitModelMasterAsync( GetLimitModelMasterRequest request, AsyncAction> callback ) { GetLimitModelMasterTask task = new GetLimitModelMasterTask(request, callback, GetLimitModelMasterResult.class); session.execute(task); } /** * 回数制限の種類マスターを取得
* * @param request リクエストパラメータ */ public GetLimitModelMasterResult getLimitModelMaster( GetLimitModelMasterRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; getLimitModelMasterAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class UpdateLimitModelMasterTask extends Gs2RestSessionTask { private UpdateLimitModelMasterRequest request; public UpdateLimitModelMasterTask( UpdateLimitModelMasterRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/master/limit/{limitName}"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName())); ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getDescription() != null) { json.put("description", this.request.getDescription()); } if (this.request.getMetadata() != null) { json.put("metadata", this.request.getMetadata()); } if (this.request.getResetType() != null) { json.put("resetType", this.request.getResetType()); } if (this.request.getResetDayOfMonth() != null) { json.put("resetDayOfMonth", this.request.getResetDayOfMonth()); } if (this.request.getResetDayOfWeek() != null) { json.put("resetDayOfWeek", this.request.getResetDayOfWeek()); } if (this.request.getResetHour() != null) { json.put("resetHour", this.request.getResetHour()); } if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.PUT) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * 回数制限の種類マスターを更新
* * @param callback コールバック * @param request リクエストパラメータ */ public void updateLimitModelMasterAsync( UpdateLimitModelMasterRequest request, AsyncAction> callback ) { UpdateLimitModelMasterTask task = new UpdateLimitModelMasterTask(request, callback, UpdateLimitModelMasterResult.class); session.execute(task); } /** * 回数制限の種類マスターを更新
* * @param request リクエストパラメータ */ public UpdateLimitModelMasterResult updateLimitModelMaster( UpdateLimitModelMasterRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; updateLimitModelMasterAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DeleteLimitModelMasterTask extends Gs2RestSessionTask { private DeleteLimitModelMasterRequest request; public DeleteLimitModelMasterTask( DeleteLimitModelMasterRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/master/limit/{limitName}"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.DELETE) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * 回数制限の種類マスターを削除
* * @param callback コールバック * @param request リクエストパラメータ */ public void deleteLimitModelMasterAsync( DeleteLimitModelMasterRequest request, AsyncAction> callback ) { DeleteLimitModelMasterTask task = new DeleteLimitModelMasterTask(request, callback, DeleteLimitModelMasterResult.class); session.execute(task); } /** * 回数制限の種類マスターを削除
* * @param request リクエストパラメータ */ public DeleteLimitModelMasterResult deleteLimitModelMaster( DeleteLimitModelMasterRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; deleteLimitModelMasterAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class ExportMasterTask extends Gs2RestSessionTask { private ExportMasterRequest request; public ExportMasterTask( ExportMasterRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/master/export"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * 現在有効な回数制限設定のマスターデータをエクスポートします
* * @param callback コールバック * @param request リクエストパラメータ */ public void exportMasterAsync( ExportMasterRequest request, AsyncAction> callback ) { ExportMasterTask task = new ExportMasterTask(request, callback, ExportMasterResult.class); session.execute(task); } /** * 現在有効な回数制限設定のマスターデータをエクスポートします
* * @param request リクエストパラメータ */ public ExportMasterResult exportMaster( ExportMasterRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; exportMasterAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class GetCurrentLimitMasterTask extends Gs2RestSessionTask { private GetCurrentLimitMasterRequest request; public GetCurrentLimitMasterTask( GetCurrentLimitMasterRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/master"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * 現在有効な現在有効な回数制限設定を取得します
* * @param callback コールバック * @param request リクエストパラメータ */ public void getCurrentLimitMasterAsync( GetCurrentLimitMasterRequest request, AsyncAction> callback ) { GetCurrentLimitMasterTask task = new GetCurrentLimitMasterTask(request, callback, GetCurrentLimitMasterResult.class); session.execute(task); } /** * 現在有効な現在有効な回数制限設定を取得します
* * @param request リクエストパラメータ */ public GetCurrentLimitMasterResult getCurrentLimitMaster( GetCurrentLimitMasterRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; getCurrentLimitMasterAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class UpdateCurrentLimitMasterTask extends Gs2RestSessionTask { private UpdateCurrentLimitMasterRequest request; public UpdateCurrentLimitMasterTask( UpdateCurrentLimitMasterRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/master"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); ObjectMapper mapper = new ObjectMapper(); JSONObject json = new JSONObject(); if (this.request.getSettings() != null) { json.put("settings", this.request.getSettings()); } if (this.request.getContextStack() != null) { json.put("contextStack", this.request.getContextStack()); } builder.setBody(json.toString().getBytes()); builder .setMethod(HttpTask.Method.PUT) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * 現在有効な現在有効な回数制限設定を更新します
* * @param callback コールバック * @param request リクエストパラメータ */ public void updateCurrentLimitMasterAsync( UpdateCurrentLimitMasterRequest request, AsyncAction> callback ) { UpdateCurrentLimitMasterTask task = new UpdateCurrentLimitMasterTask(request, callback, UpdateCurrentLimitMasterResult.class); session.execute(task); } /** * 現在有効な現在有効な回数制限設定を更新します
* * @param request リクエストパラメータ */ public UpdateCurrentLimitMasterResult updateCurrentLimitMaster( UpdateCurrentLimitMasterRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; updateCurrentLimitMasterAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class DescribeLimitModelsTask extends Gs2RestSessionTask { private DescribeLimitModelsRequest request; public DescribeLimitModelsTask( DescribeLimitModelsRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/limit"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * 回数制限の種類の一覧を取得
* * @param callback コールバック * @param request リクエストパラメータ */ public void describeLimitModelsAsync( DescribeLimitModelsRequest request, AsyncAction> callback ) { DescribeLimitModelsTask task = new DescribeLimitModelsTask(request, callback, DescribeLimitModelsResult.class); session.execute(task); } /** * 回数制限の種類の一覧を取得
* * @param request リクエストパラメータ */ public DescribeLimitModelsResult describeLimitModels( DescribeLimitModelsRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; describeLimitModelsAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } class GetLimitModelTask extends Gs2RestSessionTask { private GetLimitModelRequest request; public GetLimitModelTask( GetLimitModelRequest request, AsyncAction> userCallback, Class clazz ) { super( (Gs2RestSession) session, userCallback, clazz ); this.request = request; } @Override protected void executeImpl() { String url = Gs2RestSession.EndpointHost .replace("{service}", "limit") .replace("{region}", session.getRegion().getName()) + "/{namespaceName}/limit/{limitName}"; url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName())); url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName())); List queryStrings = new ArrayList<> (); if (this.request.getContextStack() != null) { queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack())); } url += "?" + String.join("&", queryStrings); builder .setMethod(HttpTask.Method.GET) .setUrl(url) .setHeader("Content-Type", "application/json") .setHttpResponseHandler(this); if (this.request.getRequestId() != null) { builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId()); } builder .build() .send(); } } /** * 回数制限の種類を取得
* * @param callback コールバック * @param request リクエストパラメータ */ public void getLimitModelAsync( GetLimitModelRequest request, AsyncAction> callback ) { GetLimitModelTask task = new GetLimitModelTask(request, callback, GetLimitModelResult.class); session.execute(task); } /** * 回数制限の種類を取得
* * @param request リクエストパラメータ */ public GetLimitModelResult getLimitModel( GetLimitModelRequest request ) { final AsyncResult[] resultAsyncResult = new AsyncResult[]{null}; getLimitModelAsync( request, result -> resultAsyncResult[0] = result ); while (resultAsyncResult[0] == null) { try { Thread.sleep(100); } catch (InterruptedException e) {} } if(resultAsyncResult[0].getError() != null) { throw resultAsyncResult[0].getError(); } return resultAsyncResult[0].getResult(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy