summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwangwei <[email protected]>2024-11-05 17:55:44 +0800
committerwangwei <[email protected]>2024-11-05 17:55:44 +0800
commitad32855bd20e5792303215e6e04829cc27f3c21f (patch)
treec446fc0aa360afc08b794463502f7a2994c74402
parent1479d02c1ae5b0d01b75bcfbcda35a85ad9a4865 (diff)
[Fix][database] 支持Schema is_encrypted更新操作(TSG-22629)
-rw-r--r--src/main/java/com/mesalab/qgw/controller/DatabaseController.java5
-rw-r--r--src/main/java/com/mesalab/qgw/service/impl/DatabaseServiceImpl.java1
2 files changed, 6 insertions, 0 deletions
diff --git a/src/main/java/com/mesalab/qgw/controller/DatabaseController.java b/src/main/java/com/mesalab/qgw/controller/DatabaseController.java
index e6d89cf1..d0255482 100644
--- a/src/main/java/com/mesalab/qgw/controller/DatabaseController.java
+++ b/src/main/java/com/mesalab/qgw/controller/DatabaseController.java
@@ -37,6 +37,7 @@ public class DatabaseController {
private DatabaseService databaseService;
private final static HashSet<String> VISIBILITY = Sets.newHashSet("enabled", "hidden", "disabled");
+ private final static HashSet<String> IS_ENCRYPTED = Sets.newHashSet("true", "false");
@RequestMapping(value = "/table/{table_name}/schema", method = RequestMethod.GET, consumes = "application/x-www-form-urlencoded")
@@ -138,6 +139,10 @@ public class DatabaseController {
throw new QGWBusinessException(HttpStatusCodeEnum.BAD_REQUEST.getCode(), CommonErrorCode.PARAMETER_ERROR.getCode(),
String.format(CommonErrorCode.PARAMETER_ERROR.getMessage(), QGWMessageConst.SCHEMA_ERROR_VISIBILITY_VALUE));
}
+ if (!IS_ENCRYPTED.containsAll(JsonPath.read(param, "$.fields[?(@.doc.is_encrypted != null)].doc.is_encrypted"))) {
+ throw new QGWBusinessException(HttpStatusCodeEnum.BAD_REQUEST.getCode(), CommonErrorCode.PARAMETER_ERROR.getCode(),
+ String.format(CommonErrorCode.PARAMETER_ERROR.getMessage(), QGWMessageConst.SCHEMA_ERROR_VISIBILITY_VALUE));
+ }
List<Object> schemaDocTTL = JsonPath.read(param, "$.[?(@.doc.ttl != null)].doc.ttl");
if (StringUtil.isNotEmpty(schemaDocTTL.stream().filter(o -> !(NumberUtil.isLong(String.valueOf(o)))).toArray())) {
throw new QGWBusinessException(HttpStatusCodeEnum.BAD_REQUEST.getCode(), CommonErrorCode.PARAMETER_ERROR.getCode(),
diff --git a/src/main/java/com/mesalab/qgw/service/impl/DatabaseServiceImpl.java b/src/main/java/com/mesalab/qgw/service/impl/DatabaseServiceImpl.java
index fc8f44be..f437e993 100644
--- a/src/main/java/com/mesalab/qgw/service/impl/DatabaseServiceImpl.java
+++ b/src/main/java/com/mesalab/qgw/service/impl/DatabaseServiceImpl.java
@@ -422,6 +422,7 @@ public class DatabaseServiceImpl implements DatabaseService, EnvironmentAware {
field.put("doc", rewriteDoc("ttl", field.get("doc"), JsonPath.read(paramMap, "$.fields[?(@.name == \"" + field.get("name") + "\")].doc")));
}
field.put("doc", rewriteDoc("visibility", field.get("doc"), JsonPath.read(paramMap, "$.fields[?(@.name == \"" + field.get("name") + "\")].doc")));
+ field.put("doc", rewriteDoc("is_encrypted", field.get("doc"), JsonPath.read(paramMap, "$.fields[?(@.name == \"" + field.get("name") + "\")].doc")));
}
content = JSON.toJSONString(data, JSONWriter.Feature.WriteNulls);
log.info("push Schema, content is: {}", content);