
io.gs2.key.Gs2KeyRestClient Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gs2-java-sdk Show documentation
Show all versions of gs2-java-sdk Show documentation
Game Server Services SDK for Java
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.key;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
import io.gs2.core.model.AsyncAction;
import io.gs2.core.model.AsyncResult;
import io.gs2.core.exception.*;
import io.gs2.core.net.*;
import io.gs2.core.util.EncodingUtil;
import io.gs2.core.AbstractGs2Client;
import io.gs2.key.request.*;
import io.gs2.key.result.*;
import io.gs2.key.model.*;public class Gs2KeyRestClient extends AbstractGs2Client {
public Gs2KeyRestClient(Gs2RestSession gs2RestSession) {
super(gs2RestSession);
}
class DescribeNamespacesTask extends Gs2RestSessionTask {
private DescribeNamespacesRequest request;
public DescribeNamespacesTask(
DescribeNamespacesRequest request,
AsyncAction> userCallback
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public DescribeNamespacesResult parse(JsonNode data) {
return DescribeNamespacesResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.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();
}
}
public void describeNamespacesAsync(
DescribeNamespacesRequest request,
AsyncAction> callback
) {
DescribeNamespacesTask task = new DescribeNamespacesTask(request, callback);
session.execute(task);
}
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
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public CreateNamespaceResult parse(JsonNode data) {
return CreateNamespaceResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.replace("{region}", session.getRegion().getName())
+ "/";
builder.setBody(new ObjectMapper().valueToTree(
new HashMap() {{
put("name", request.getName());
put("description", request.getDescription());
put("logSetting", request.getLogSetting() != null ? request.getLogSetting().toJson() : null);
put("contextStack", request.getContextStack());
}}
).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();
}
}
public void createNamespaceAsync(
CreateNamespaceRequest request,
AsyncAction> callback
) {
CreateNamespaceTask task = new CreateNamespaceTask(request, callback);
session.execute(task);
}
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
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public GetNamespaceStatusResult parse(JsonNode data) {
return GetNamespaceStatusResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.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();
}
}
public void getNamespaceStatusAsync(
GetNamespaceStatusRequest request,
AsyncAction> callback
) {
GetNamespaceStatusTask task = new GetNamespaceStatusTask(request, callback);
session.execute(task);
}
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
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public GetNamespaceResult parse(JsonNode data) {
return GetNamespaceResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.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();
}
}
public void getNamespaceAsync(
GetNamespaceRequest request,
AsyncAction> callback
) {
GetNamespaceTask task = new GetNamespaceTask(request, callback);
session.execute(task);
}
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
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public UpdateNamespaceResult parse(JsonNode data) {
return UpdateNamespaceResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.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()));
builder.setBody(new ObjectMapper().valueToTree(
new HashMap() {{
put("description", request.getDescription());
put("logSetting", request.getLogSetting() != null ? request.getLogSetting().toJson() : null);
put("contextStack", request.getContextStack());
}}
).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();
}
}
public void updateNamespaceAsync(
UpdateNamespaceRequest request,
AsyncAction> callback
) {
UpdateNamespaceTask task = new UpdateNamespaceTask(request, callback);
session.execute(task);
}
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
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public DeleteNamespaceResult parse(JsonNode data) {
return DeleteNamespaceResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.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();
}
}
public void deleteNamespaceAsync(
DeleteNamespaceRequest request,
AsyncAction> callback
) {
DeleteNamespaceTask task = new DeleteNamespaceTask(request, callback);
session.execute(task);
}
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 DescribeKeysTask extends Gs2RestSessionTask {
private DescribeKeysRequest request;
public DescribeKeysTask(
DescribeKeysRequest request,
AsyncAction> userCallback
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public DescribeKeysResult parse(JsonNode data) {
return DescribeKeysResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/key";
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();
}
}
public void describeKeysAsync(
DescribeKeysRequest request,
AsyncAction> callback
) {
DescribeKeysTask task = new DescribeKeysTask(request, callback);
session.execute(task);
}
public DescribeKeysResult describeKeys(
DescribeKeysRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
describeKeysAsync(
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 CreateKeyTask extends Gs2RestSessionTask {
private CreateKeyRequest request;
public CreateKeyTask(
CreateKeyRequest request,
AsyncAction> userCallback
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public CreateKeyResult parse(JsonNode data) {
return CreateKeyResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/key";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null || this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
builder.setBody(new ObjectMapper().valueToTree(
new HashMap() {{
put("name", request.getName());
put("description", request.getDescription());
put("contextStack", request.getContextStack());
}}
).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();
}
}
public void createKeyAsync(
CreateKeyRequest request,
AsyncAction> callback
) {
CreateKeyTask task = new CreateKeyTask(request, callback);
session.execute(task);
}
public CreateKeyResult createKey(
CreateKeyRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
createKeyAsync(
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 UpdateKeyTask extends Gs2RestSessionTask {
private UpdateKeyRequest request;
public UpdateKeyTask(
UpdateKeyRequest request,
AsyncAction> userCallback
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public UpdateKeyResult parse(JsonNode data) {
return UpdateKeyResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/key/{keyName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null || this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{keyName}", this.request.getKeyName() == null || this.request.getKeyName().length() == 0 ? "null" : String.valueOf(this.request.getKeyName()));
builder.setBody(new ObjectMapper().valueToTree(
new HashMap() {{
put("description", request.getDescription());
put("contextStack", request.getContextStack());
}}
).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();
}
}
public void updateKeyAsync(
UpdateKeyRequest request,
AsyncAction> callback
) {
UpdateKeyTask task = new UpdateKeyTask(request, callback);
session.execute(task);
}
public UpdateKeyResult updateKey(
UpdateKeyRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
updateKeyAsync(
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 GetKeyTask extends Gs2RestSessionTask {
private GetKeyRequest request;
public GetKeyTask(
GetKeyRequest request,
AsyncAction> userCallback
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public GetKeyResult parse(JsonNode data) {
return GetKeyResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/key/{keyName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null || this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{keyName}", this.request.getKeyName() == null || this.request.getKeyName().length() == 0 ? "null" : String.valueOf(this.request.getKeyName()));
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();
}
}
public void getKeyAsync(
GetKeyRequest request,
AsyncAction> callback
) {
GetKeyTask task = new GetKeyTask(request, callback);
session.execute(task);
}
public GetKeyResult getKey(
GetKeyRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
getKeyAsync(
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 DeleteKeyTask extends Gs2RestSessionTask {
private DeleteKeyRequest request;
public DeleteKeyTask(
DeleteKeyRequest request,
AsyncAction> userCallback
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public DeleteKeyResult parse(JsonNode data) {
return DeleteKeyResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/key/{keyName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null || this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{keyName}", this.request.getKeyName() == null || this.request.getKeyName().length() == 0 ? "null" : String.valueOf(this.request.getKeyName()));
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();
}
}
public void deleteKeyAsync(
DeleteKeyRequest request,
AsyncAction> callback
) {
DeleteKeyTask task = new DeleteKeyTask(request, callback);
session.execute(task);
}
public DeleteKeyResult deleteKey(
DeleteKeyRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
deleteKeyAsync(
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 EncryptTask extends Gs2RestSessionTask {
private EncryptRequest request;
public EncryptTask(
EncryptRequest request,
AsyncAction> userCallback
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public EncryptResult parse(JsonNode data) {
return EncryptResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/key/{keyName}/encrypt";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null || this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{keyName}", this.request.getKeyName() == null || this.request.getKeyName().length() == 0 ? "null" : String.valueOf(this.request.getKeyName()));
builder.setBody(new ObjectMapper().valueToTree(
new HashMap() {{
put("data", request.getData());
put("contextStack", request.getContextStack());
}}
).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();
}
}
public void encryptAsync(
EncryptRequest request,
AsyncAction> callback
) {
EncryptTask task = new EncryptTask(request, callback);
session.execute(task);
}
public EncryptResult encrypt(
EncryptRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
encryptAsync(
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 DecryptTask extends Gs2RestSessionTask {
private DecryptRequest request;
public DecryptTask(
DecryptRequest request,
AsyncAction> userCallback
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public DecryptResult parse(JsonNode data) {
return DecryptResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/key/{keyName}/decrypt";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null || this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{keyName}", this.request.getKeyName() == null || this.request.getKeyName().length() == 0 ? "null" : String.valueOf(this.request.getKeyName()));
builder.setBody(new ObjectMapper().valueToTree(
new HashMap() {{
put("data", request.getData());
put("contextStack", request.getContextStack());
}}
).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();
}
}
public void decryptAsync(
DecryptRequest request,
AsyncAction> callback
) {
DecryptTask task = new DecryptTask(request, callback);
session.execute(task);
}
public DecryptResult decrypt(
DecryptRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
decryptAsync(
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 DescribeGitHubApiKeysTask extends Gs2RestSessionTask {
private DescribeGitHubApiKeysRequest request;
public DescribeGitHubApiKeysTask(
DescribeGitHubApiKeysRequest request,
AsyncAction> userCallback
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public DescribeGitHubApiKeysResult parse(JsonNode data) {
return DescribeGitHubApiKeysResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/github";
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();
}
}
public void describeGitHubApiKeysAsync(
DescribeGitHubApiKeysRequest request,
AsyncAction> callback
) {
DescribeGitHubApiKeysTask task = new DescribeGitHubApiKeysTask(request, callback);
session.execute(task);
}
public DescribeGitHubApiKeysResult describeGitHubApiKeys(
DescribeGitHubApiKeysRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
describeGitHubApiKeysAsync(
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 CreateGitHubApiKeyTask extends Gs2RestSessionTask {
private CreateGitHubApiKeyRequest request;
public CreateGitHubApiKeyTask(
CreateGitHubApiKeyRequest request,
AsyncAction> userCallback
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public CreateGitHubApiKeyResult parse(JsonNode data) {
return CreateGitHubApiKeyResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/github";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null || this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
builder.setBody(new ObjectMapper().valueToTree(
new HashMap() {{
put("name", request.getName());
put("description", request.getDescription());
put("apiKey", request.getApiKey());
put("encryptionKeyName", request.getEncryptionKeyName());
put("contextStack", request.getContextStack());
}}
).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();
}
}
public void createGitHubApiKeyAsync(
CreateGitHubApiKeyRequest request,
AsyncAction> callback
) {
CreateGitHubApiKeyTask task = new CreateGitHubApiKeyTask(request, callback);
session.execute(task);
}
public CreateGitHubApiKeyResult createGitHubApiKey(
CreateGitHubApiKeyRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
createGitHubApiKeyAsync(
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 UpdateGitHubApiKeyTask extends Gs2RestSessionTask {
private UpdateGitHubApiKeyRequest request;
public UpdateGitHubApiKeyTask(
UpdateGitHubApiKeyRequest request,
AsyncAction> userCallback
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public UpdateGitHubApiKeyResult parse(JsonNode data) {
return UpdateGitHubApiKeyResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/github/{apiKeyName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null || this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{apiKeyName}", this.request.getApiKeyName() == null || this.request.getApiKeyName().length() == 0 ? "null" : String.valueOf(this.request.getApiKeyName()));
builder.setBody(new ObjectMapper().valueToTree(
new HashMap() {{
put("description", request.getDescription());
put("apiKey", request.getApiKey());
put("encryptionKeyName", request.getEncryptionKeyName());
put("contextStack", request.getContextStack());
}}
).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();
}
}
public void updateGitHubApiKeyAsync(
UpdateGitHubApiKeyRequest request,
AsyncAction> callback
) {
UpdateGitHubApiKeyTask task = new UpdateGitHubApiKeyTask(request, callback);
session.execute(task);
}
public UpdateGitHubApiKeyResult updateGitHubApiKey(
UpdateGitHubApiKeyRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
updateGitHubApiKeyAsync(
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 GetGitHubApiKeyTask extends Gs2RestSessionTask {
private GetGitHubApiKeyRequest request;
public GetGitHubApiKeyTask(
GetGitHubApiKeyRequest request,
AsyncAction> userCallback
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public GetGitHubApiKeyResult parse(JsonNode data) {
return GetGitHubApiKeyResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/github/{apiKeyName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null || this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{apiKeyName}", this.request.getApiKeyName() == null || this.request.getApiKeyName().length() == 0 ? "null" : String.valueOf(this.request.getApiKeyName()));
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();
}
}
public void getGitHubApiKeyAsync(
GetGitHubApiKeyRequest request,
AsyncAction> callback
) {
GetGitHubApiKeyTask task = new GetGitHubApiKeyTask(request, callback);
session.execute(task);
}
public GetGitHubApiKeyResult getGitHubApiKey(
GetGitHubApiKeyRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
getGitHubApiKeyAsync(
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 DeleteGitHubApiKeyTask extends Gs2RestSessionTask {
private DeleteGitHubApiKeyRequest request;
public DeleteGitHubApiKeyTask(
DeleteGitHubApiKeyRequest request,
AsyncAction> userCallback
) {
super(
(Gs2RestSession) session,
userCallback
);
this.request = request;
}
@Override
public DeleteGitHubApiKeyResult parse(JsonNode data) {
return DeleteGitHubApiKeyResult.fromJson(data);
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "key")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/github/{apiKeyName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null || this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{apiKeyName}", this.request.getApiKeyName() == null || this.request.getApiKeyName().length() == 0 ? "null" : String.valueOf(this.request.getApiKeyName()));
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();
}
}
public void deleteGitHubApiKeyAsync(
DeleteGitHubApiKeyRequest request,
AsyncAction> callback
) {
DeleteGitHubApiKeyTask task = new DeleteGitHubApiKeyTask(request, callback);
session.execute(task);
}
public DeleteGitHubApiKeyResult deleteGitHubApiKey(
DeleteGitHubApiKeyRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
deleteGitHubApiKeyAsync(
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