diff --git a/wherehows-dao/src/main/java/wherehows/dao/DatasetsDao.java b/wherehows-dao/src/main/java/wherehows/dao/DatasetsDao.java index 8dc16336e7..70b8d42201 100644 --- a/wherehows-dao/src/main/java/wherehows/dao/DatasetsDao.java +++ b/wherehows-dao/src/main/java/wherehows/dao/DatasetsDao.java @@ -14,7 +14,6 @@ package wherehows.dao; import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; import java.sql.PreparedStatement; @@ -225,12 +224,11 @@ public class DatasetsDao { return record; } - public DatasetCompliance updateDatasetComplianceInfo(JdbcTemplate jdbcTemplate, - NamedParameterJdbcTemplate namedParameterJdbcTemplate, int datasetId, JsonNode node, String user) + public void updateDatasetComplianceInfo(JdbcTemplate jdbcTemplate, + NamedParameterJdbcTemplate namedParameterJdbcTemplate, int datasetId, DatasetCompliance record, String user) throws Exception { - ObjectMapper om = new ObjectMapper(); - DatasetCompliance record = om.convertValue(node, DatasetCompliance.class); + if (record.getDatasetId() != null && datasetId != record.getDatasetId()) { throw new IllegalArgumentException("Dataset id doesn't match."); } @@ -253,7 +251,5 @@ public class DatasetsDao { parameters.put("modified_by", user); parameters.put("modified_time", System.currentTimeMillis() / 1000); namedParameterJdbcTemplate.update(INSERT_DATASET_COMPLIANCE, parameters); - - return record; } } diff --git a/wherehows-frontend/app/controllers/api/v1/Dataset.java b/wherehows-frontend/app/controllers/api/v1/Dataset.java index 45a634881c..12b0467480 100644 --- a/wherehows-frontend/app/controllers/api/v1/Dataset.java +++ b/wherehows-frontend/app/controllers/api/v1/Dataset.java @@ -777,8 +777,9 @@ public class Dataset extends Controller { } try { - DATASETS_DAO.updateDatasetComplianceInfo(JDBC_TEMPLATE, NAMED_JDBC_TEMPLATE, datasetId, request().body().asJson(), - username); + DatasetCompliance record = Json.mapper().convertValue(request().body().asJson(), DatasetCompliance.class); + + DATASETS_DAO.updateDatasetComplianceInfo(JDBC_TEMPLATE, NAMED_JDBC_TEMPLATE, datasetId, record, username); } catch (Exception e) { JsonNode result = Json.newObject() .put("status", "failed")