diff --git a/pom.xml b/pom.xml
index 62eccea7..9c0115d8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.skyflow
skyflow-java
- 2.0.2
+ 2.0.2-dev.e2476a7
jar
${project.groupId}:${project.artifactId}
diff --git a/src/main/java/com/skyflow/errors/SkyflowException.java b/src/main/java/com/skyflow/errors/SkyflowException.java
index 32c71f39..a971dc7e 100644
--- a/src/main/java/com/skyflow/errors/SkyflowException.java
+++ b/src/main/java/com/skyflow/errors/SkyflowException.java
@@ -32,6 +32,11 @@ public SkyflowException(String message, Throwable cause) {
super(message, cause);
this.message = message;
}
+ public SkyflowException(String message, Throwable cause, int httpCode) {
+ super(message, cause);
+ this.message = message;
+ this.httpCode = httpCode;
+ }
public SkyflowException(int code, String message) {
super(message);
diff --git a/src/main/java/com/skyflow/vault/controller/DetectController.java b/src/main/java/com/skyflow/vault/controller/DetectController.java
index 5801d688..67ebf65e 100644
--- a/src/main/java/com/skyflow/vault/controller/DetectController.java
+++ b/src/main/java/com/skyflow/vault/controller/DetectController.java
@@ -9,6 +9,7 @@
import com.skyflow.errors.ErrorMessage;
import com.skyflow.errors.SkyflowException;
import com.skyflow.generated.rest.core.ApiClientApiException;
+import com.skyflow.generated.rest.core.ApiClientException;
import com.skyflow.generated.rest.core.RequestOptions;
import com.skyflow.generated.rest.resources.files.requests.*;
import com.skyflow.generated.rest.resources.strings.requests.DeidentifyStringRequest;
@@ -66,6 +67,9 @@ public DeidentifyTextResponse deidentifyText(DeidentifyTextRequest deidentifyTex
String bodyString = extractBodyAsString(ex);
LogUtil.printErrorLog(ErrorLogs.DEIDENTIFY_TEXT_REQUEST_REJECTED.getLog());
throw new SkyflowException(ex.statusCode(), ex, ex.headers(), bodyString);
+ } catch (ApiClientException e) {
+ LogUtil.printErrorLog(ErrorLogs.DEIDENTIFY_TEXT_REQUEST_REJECTED.getLog());
+ throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode());
}
LogUtil.printInfoLog(InfoLogs.DEIDENTIFY_TEXT_SUCCESS.getLog());
return deidentifyTextResponse;
@@ -94,6 +98,9 @@ public ReidentifyTextResponse reidentifyText(ReidentifyTextRequest reidentifyTex
String bodyString = extractBodyAsString(ex);
LogUtil.printErrorLog(ErrorLogs.REIDENTIFY_TEXT_REQUEST_REJECTED.getLog());
throw new SkyflowException(ex.statusCode(), ex, ex.headers(), bodyString);
+ } catch (ApiClientException e) {
+ LogUtil.printErrorLog(ErrorLogs.REIDENTIFY_TEXT_REQUEST_REJECTED.getLog());
+ throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode());
}
LogUtil.printInfoLog(InfoLogs.REIDENTIFY_TEXT_SUCCESS.getLog());
return reidentifyTextResponse;
@@ -180,6 +187,9 @@ public DeidentifyFileResponse deidentifyFile(DeidentifyFileRequest request) thro
String bodyString = extractBodyAsString(e);
LogUtil.printErrorLog(ErrorLogs.DEIDENTIFY_FILE_REQUEST_REJECTED.getLog());
throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString);
+ } catch (ApiClientException e) {
+ LogUtil.printErrorLog(ErrorLogs.DEIDENTIFY_FILE_REQUEST_REJECTED.getLog());
+ throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode());
}
return response;
}
@@ -431,6 +441,9 @@ public DeidentifyFileResponse getDetectRun(GetDetectRunRequest request) throws S
String bodyString = extractBodyAsString(e);
LogUtil.printErrorLog(ErrorLogs.GET_DETECT_RUN_REQUEST_REJECTED.getLog());
throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString);
+ } catch (ApiClientException e) {
+ LogUtil.printErrorLog(ErrorLogs.GET_DETECT_RUN_REQUEST_REJECTED.getLog());
+ throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode());
}
}
}
diff --git a/src/main/java/com/skyflow/vault/controller/VaultController.java b/src/main/java/com/skyflow/vault/controller/VaultController.java
index acac9608..cbf0a70f 100644
--- a/src/main/java/com/skyflow/vault/controller/VaultController.java
+++ b/src/main/java/com/skyflow/vault/controller/VaultController.java
@@ -22,6 +22,7 @@
import com.skyflow.errors.ErrorCode;
import com.skyflow.errors.SkyflowException;
import com.skyflow.generated.rest.core.ApiClientApiException;
+import com.skyflow.generated.rest.core.ApiClientException;
import com.skyflow.generated.rest.core.ApiClientHttpResponse;
import com.skyflow.generated.rest.core.RequestOptions;
import com.skyflow.generated.rest.resources.query.requests.QueryServiceExecuteQueryBody;
@@ -202,6 +203,9 @@ public InsertResponse insert(InsertRequest insertRequest) throws SkyflowExceptio
String bodyString = GSON.toJson(e.body());
LogUtil.printErrorLog(ErrorLogs.INSERT_RECORDS_REJECTED.getLog());
throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString);
+ } catch (ApiClientException e) {
+ LogUtil.printErrorLog(ErrorLogs.INSERT_RECORDS_REJECTED.getLog());
+ throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode());
}
LogUtil.printInfoLog(InfoLogs.INSERT_SUCCESS.getLog());
if (insertedFields.isEmpty()) {
@@ -247,6 +251,9 @@ public DetokenizeResponse detokenize(DetokenizeRequest detokenizeRequest) throws
String bodyString = GSON.toJson(e.body());
LogUtil.printErrorLog(ErrorLogs.DETOKENIZE_REQUEST_REJECTED.getLog());
throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString);
+ } catch (ApiClientException e) {
+ LogUtil.printErrorLog(ErrorLogs.DETOKENIZE_REQUEST_REJECTED.getLog());
+ throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode());
}
if (!errorRecords.isEmpty()) {
@@ -304,6 +311,9 @@ public GetResponse get(GetRequest getRequest) throws SkyflowException {
String bodyString = GSON.toJson(e.body());
LogUtil.printErrorLog(ErrorLogs.GET_REQUEST_REJECTED.getLog());
throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString);
+ } catch (ApiClientException e) {
+ LogUtil.printErrorLog(ErrorLogs.GET_REQUEST_REJECTED.getLog());
+ throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode());
}
LogUtil.printInfoLog(InfoLogs.GET_SUCCESS.getLog());
return new GetResponse(data, null);
@@ -334,6 +344,9 @@ public UpdateResponse update(UpdateRequest updateRequest) throws SkyflowExceptio
String bodyString = GSON.toJson(e.body());
LogUtil.printErrorLog(ErrorLogs.UPDATE_REQUEST_REJECTED.getLog());
throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString);
+ } catch (ApiClientException e) {
+ LogUtil.printErrorLog(ErrorLogs.UPDATE_REQUEST_REJECTED.getLog());
+ throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode());
}
LogUtil.printInfoLog(InfoLogs.UPDATE_SUCCESS.getLog());
return new UpdateResponse(skyflowId, tokensMap);
@@ -357,6 +370,9 @@ public DeleteResponse delete(DeleteRequest deleteRequest) throws SkyflowExceptio
String bodyString = GSON.toJson(e.body());
LogUtil.printErrorLog(ErrorLogs.DELETE_REQUEST_REJECTED.getLog());
throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString);
+ } catch (ApiClientException e) {
+ LogUtil.printErrorLog(ErrorLogs.DELETE_REQUEST_REJECTED.getLog());
+ throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode());
}
LogUtil.printInfoLog(InfoLogs.DELETE_SUCCESS.getLog());
return new DeleteResponse(result.getRecordIdResponse().get());
@@ -387,6 +403,9 @@ public QueryResponse query(QueryRequest queryRequest) throws SkyflowException {
String bodyString = GSON.toJson(e.body());
LogUtil.printErrorLog(ErrorLogs.QUERY_REQUEST_REJECTED.getLog());
throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString);
+ } catch (ApiClientException e) {
+ LogUtil.printErrorLog(ErrorLogs.QUERY_REQUEST_REJECTED.getLog());
+ throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode());
}
LogUtil.printInfoLog(InfoLogs.QUERY_SUCCESS.getLog());
return new QueryResponse(fields);
@@ -415,6 +434,9 @@ public TokenizeResponse tokenize(TokenizeRequest tokenizeRequest) throws Skyflow
String bodyString = GSON.toJson(e.body());
LogUtil.printErrorLog(ErrorLogs.TOKENIZE_REQUEST_REJECTED.getLog());
throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString);
+ } catch (ApiClientException e) {
+ LogUtil.printErrorLog(ErrorLogs.TOKENIZE_REQUEST_REJECTED.getLog());
+ throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode());
}
LogUtil.printInfoLog(InfoLogs.TOKENIZE_SUCCESS.getLog());
return new TokenizeResponse(list);
@@ -454,6 +476,9 @@ public FileUploadResponse uploadFile(FileUploadRequest fileUploadRequest) throws
String bodyString = GSON.toJson(e.body());
LogUtil.printErrorLog(ErrorLogs.UPLOAD_FILE_REQUEST_REJECTED.getLog());
throw new SkyflowException(e.statusCode(), e, e.headers(), bodyString);
+ } catch (ApiClientException e) {
+ LogUtil.printErrorLog(ErrorLogs.UPLOAD_FILE_REQUEST_REJECTED.getLog());
+ throw new SkyflowException(e.getMessage(), e.getCause(), ErrorCode.INVALID_INPUT.getCode());
} catch (IOException e) {
LogUtil.printErrorLog(ErrorLogs.UPLOAD_FILE_REQUEST_REJECTED.getLog());
throw new SkyflowException(e.getMessage(), e);
diff --git a/src/test/java/com/skyflow/vault/controller/DetectControllerFileTests.java b/src/test/java/com/skyflow/vault/controller/DetectControllerFileTests.java
index da8494e1..3540c160 100644
--- a/src/test/java/com/skyflow/vault/controller/DetectControllerFileTests.java
+++ b/src/test/java/com/skyflow/vault/controller/DetectControllerFileTests.java
@@ -406,4 +406,36 @@ public void testOutputDirectoryNotWritable() throws Exception {
dir.delete();
}
}
+
+ @Test
+ public void testApiClientExceptionInDeidentifyFileMethod() throws Exception {
+ try {
+ File file = File.createTempFile("test", ".txt");
+ FileInput fileInput = FileInput.builder().file(file).build();
+ DeidentifyFileRequest request = DeidentifyFileRequest.builder().file(fileInput).waitTime(1).build();
+ detectController.deidentifyFile(request);
+ Assert.fail(EXCEPTION_NOT_THROWN);
+ } catch (SkyflowException e) {
+ Assert.assertEquals("Network error executing HTTP request", e.getMessage());
+ Assert.assertNull(e.getRequestId());
+ Assert.assertNull(e.getGrpcCode());
+ Assert.assertNull(e.getDetails());
+ Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode());
+ }
+ }
+
+ @Test
+ public void testApiClientExceptionInGetDetectRunMethod() {
+ try {
+ GetDetectRunRequest request = GetDetectRunRequest.builder().runId("dummy-run-id").build();
+ detectController.getDetectRun(request);
+ Assert.fail(EXCEPTION_NOT_THROWN);
+ } catch (SkyflowException e) {
+ Assert.assertEquals("Network error executing HTTP request", e.getMessage());
+ Assert.assertNull(e.getRequestId());
+ Assert.assertNull(e.getGrpcCode());
+ Assert.assertNull(e.getDetails());
+ Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode());
+ }
+ }
}
\ No newline at end of file
diff --git a/src/test/java/com/skyflow/vault/controller/DetectControllerTests.java b/src/test/java/com/skyflow/vault/controller/DetectControllerTests.java
index aae713b1..c8ee7a65 100644
--- a/src/test/java/com/skyflow/vault/controller/DetectControllerTests.java
+++ b/src/test/java/com/skyflow/vault/controller/DetectControllerTests.java
@@ -117,5 +117,36 @@ public void testEmptyTextInRequestInReidentifyStringMethod() {
}
}
-}
+ @Test
+ public void testApiClientExceptionInDeidentifyTextMethod() {
+ try {
+ DeidentifyTextRequest request = DeidentifyTextRequest.builder().text("Sensitive text").build();
+ skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build();
+ skyflowClient.detect(vaultID).deidentifyText(request);
+ Assert.fail(EXCEPTION_NOT_THROWN);
+ } catch (SkyflowException e) {
+ Assert.assertEquals("Network error executing HTTP request", e.getMessage());
+ Assert.assertNull(e.getRequestId());
+ Assert.assertNull(e.getGrpcCode());
+ Assert.assertNull(e.getDetails());
+ Assert.assertEquals(com.skyflow.errors.ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode());
+ }
+ }
+ @Test
+ public void testApiClientExceptionInReidentifyTextMethod() {
+ try {
+ ReidentifyTextRequest request = ReidentifyTextRequest.builder().text("Deidentified text").build();
+ skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build();
+ skyflowClient.detect(vaultID).reidentifyText(request);
+ Assert.fail(EXCEPTION_NOT_THROWN);
+ } catch (SkyflowException e) {
+ Assert.assertEquals("Network error executing HTTP request", e.getMessage());
+ Assert.assertNull(e.getRequestId());
+ Assert.assertNull(e.getGrpcCode());
+ Assert.assertNull(e.getDetails());
+ Assert.assertEquals(com.skyflow.errors.ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode());
+ }
+ }
+
+}
diff --git a/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java b/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java
index 4115bc2c..e822c179 100644
--- a/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java
+++ b/src/test/java/com/skyflow/vault/controller/VaultControllerTests.java
@@ -13,11 +13,15 @@
import com.skyflow.utils.Constants;
import com.skyflow.utils.Utils;
import com.skyflow.vault.data.*;
+import com.skyflow.vault.tokens.DetokenizeData;
import com.skyflow.vault.tokens.DetokenizeRequest;
import com.skyflow.vault.tokens.TokenizeRequest;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
public class VaultControllerTests {
private static final String INVALID_EXCEPTION_THROWN = "Should not have thrown any exception";
@@ -185,4 +189,148 @@ public void testInvalidRequestInFileUploadMethod() {
}
}
-}
+ @Test
+ public void testApiClientExceptionInInsertMethod() {
+ try {
+ ArrayList> values1 = new ArrayList<>();
+ HashMap value1 = new HashMap<>();
+ value1.put("", "");
+ values1.add(value1);
+ InsertRequest request = InsertRequest.builder().table("table1").values(values1).build();
+
+ skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build();
+ skyflowClient.vault().insert(request);
+ Assert.fail(EXCEPTION_NOT_THROWN);
+ } catch (SkyflowException e) {
+ Assert.assertEquals("Network error executing HTTP request", e.getMessage());
+ Assert.assertNull(e.getRequestId());
+ Assert.assertNull(e.getGrpcCode());
+ Assert.assertNull(e.getDetails());
+ Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode());
+ }
+ }
+
+ @Test
+ public void testApiClientExceptionInDetokenizeMethod() {
+ try {
+ DetokenizeData data = new DetokenizeData("token");
+ ArrayList detokenizeData = new ArrayList<>();
+ detokenizeData.add(data);
+ DetokenizeRequest request = DetokenizeRequest.builder().detokenizeData(detokenizeData).build();
+ skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build();
+ skyflowClient.vault().detokenize(request);
+ Assert.fail(EXCEPTION_NOT_THROWN);
+ } catch (SkyflowException e) {
+ Assert.assertEquals("Network error executing HTTP request", e.getMessage());
+ Assert.assertNull(e.getRequestId());
+ Assert.assertNull(e.getGrpcCode());
+ Assert.assertNull(e.getDetails());
+ Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode());
+ }
+ }
+
+ @Test
+ public void testApiClientExceptionInGetMethod() {
+ try {
+ ArrayList skyflowIds = new ArrayList<>();
+ skyflowIds.add(""); // Replace with the Skyflow
+ GetRequest request = GetRequest.builder().ids(skyflowIds).table("table1").build();
+ skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build();
+ skyflowClient.vault().get(request);
+ Assert.fail(EXCEPTION_NOT_THROWN);
+ } catch (SkyflowException e) {
+ Assert.assertEquals("Network error executing HTTP request", e.getMessage());
+ Assert.assertNull(e.getRequestId());
+ Assert.assertNull(e.getGrpcCode());
+ Assert.assertNull(e.getDetails());
+ Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode());
+ }
+ }
+
+ @Test
+ public void testApiClientExceptionInUpdateMethod() {
+ try {
+ HashMap data1 = new HashMap<>();
+ data1.put("skyflow_id", ""); // Replace with the Skyflow ID of the record
+
+ UpdateRequest request = UpdateRequest.builder().data(data1).table("table1").build();
+ skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build();
+ skyflowClient.vault().update(request);
+ Assert.fail(EXCEPTION_NOT_THROWN);
+ } catch (SkyflowException e) {
+ Assert.assertEquals("Network error executing HTTP request", e.getMessage());
+ Assert.assertNull(e.getRequestId());
+ Assert.assertNull(e.getGrpcCode());
+ Assert.assertNull(e.getDetails());
+ Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode());
+ }
+ }
+
+ @Test
+ public void testApiClientExceptionInDeleteMethod() {
+ try {
+ ArrayList skyflowIds = new ArrayList<>();
+ skyflowIds.add(""); // Replace with the Skyflow
+ DeleteRequest request = DeleteRequest.builder().ids(skyflowIds).table("table1").build();
+ skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build();
+ skyflowClient.vault().delete(request);
+ Assert.fail(EXCEPTION_NOT_THROWN);
+ } catch (SkyflowException e) {
+ Assert.assertEquals("Network error executing HTTP request", e.getMessage());
+ Assert.assertNull(e.getRequestId());
+ Assert.assertNull(e.getGrpcCode());
+ Assert.assertNull(e.getDetails());
+ Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode());
+ }
+ }
+
+ @Test
+ public void testApiClientExceptionInQueryMethod() {
+ try {
+ QueryRequest request = QueryRequest.builder().query("SELECT * FROM table1").build();
+ skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build();
+ skyflowClient.vault().query(request);
+ Assert.fail(EXCEPTION_NOT_THROWN);
+ } catch (SkyflowException e) {
+ Assert.assertEquals("Network error executing HTTP request", e.getMessage());
+ Assert.assertNull(e.getRequestId());
+ Assert.assertNull(e.getGrpcCode());
+ Assert.assertNull(e.getDetails());
+ Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode());
+ }
+ }
+
+ @Test
+ public void testApiClientExceptionInTokenizeMethod() {
+ try {
+ List columnValues = new ArrayList<>();
+ columnValues.add(com.skyflow.vault.tokens.ColumnValue.builder().value("val").columnGroup("grp").build());
+ TokenizeRequest request = TokenizeRequest.builder().values(columnValues).build();
+ skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build();
+ skyflowClient.vault().tokenize(request);
+ Assert.fail(EXCEPTION_NOT_THROWN);
+ } catch (SkyflowException e) {
+ Assert.assertEquals("Network error executing HTTP request", e.getMessage());
+ Assert.assertNull(e.getRequestId());
+ Assert.assertNull(e.getGrpcCode());
+ Assert.assertNull(e.getDetails());
+ Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode());
+ }
+ }
+
+ @Test
+ public void testApiClientExceptionInFileUploadMethod() {
+ try {
+ FileUploadRequest request = FileUploadRequest.builder().columnName("column").table("table1").filePath("./src/test/resources/noPrivateKeyCredentials.json").build();
+ skyflowClient = Skyflow.builder().setLogLevel(LogLevel.DEBUG).addVaultConfig(vaultConfig).build();
+ skyflowClient.vault().uploadFile(request);
+ Assert.fail(EXCEPTION_NOT_THROWN);
+ } catch (SkyflowException e) {
+ Assert.assertEquals("Network error executing HTTP request", e.getMessage());
+ Assert.assertNull(e.getRequestId());
+ Assert.assertNull(e.getGrpcCode());
+ Assert.assertNull(e.getDetails());
+ Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode());
+ }
+ }
+}
\ No newline at end of file