Modify frontend owners DAO functions (#684)

This commit is contained in:
Yi (Alan) Wang 2017-08-17 22:08:06 -07:00 committed by GitHub
parent 0bdd1d6c74
commit 8866ac0ff1
3 changed files with 27 additions and 41 deletions

View File

@ -126,11 +126,12 @@ public class DatasetsDao {
columnId);
}
public List<DatasetOwner> getDatasetOwnersByID(JdbcTemplate jdbcTemplate, int datasetId) {
public List<DatasetOwner> getDatasetOwnersByID(JdbcTemplate jdbcTemplate, NamedParameterJdbcTemplate namedJdbcTemplate, int datasetId) {
return jdbcTemplate.query(GET_DATASET_OWNERS_BY_ID, new DatasetOwnerRowMapper(), datasetId);
}
public void updateDatasetOwners(JdbcTemplate jdbcTemplate, int datasetId, List<DatasetOwner> owners) {
public void updateDatasetOwners(JdbcTemplate jdbcTemplate, String user, int datasetId, List<DatasetOwner> owners)
throws Exception {
// first mark existing owners as deleted, new owners will be updated later
jdbcTemplate.update(MARK_DATASET_OWNERS_AS_DELETED, datasetId);

View File

@ -198,7 +198,7 @@ public class Dataset extends Controller {
ObjectNode result = Json.newObject();
try {
result.set("owners", Json.toJson(DATASETS_DAO.getDatasetOwnersByID(JDBC_TEMPLATE, id)));
result.set("owners", Json.toJson(DATASETS_DAO.getDatasetOwnersByID(JDBC_TEMPLATE, NAMED_JDBC_TEMPLATE, id)));
result.put("status", "ok");
} catch (Exception e) {
result.put("status", "failed");
@ -278,7 +278,7 @@ public class Dataset extends Controller {
}
try {
DATASETS_DAO.updateDatasetOwners(JDBC_TEMPLATE, id, owners);
DATASETS_DAO.updateDatasetOwners(JDBC_TEMPLATE, username, id, owners);
result.put("status", "success");
} catch (Exception e) {
result.put("status", "failed");

View File

@ -13,6 +13,8 @@
*/
package dao;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
@ -20,16 +22,14 @@ import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.time.Instant;
import java.util.*;
import java.text.SimpleDateFormat;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.PreparedStatementCreator;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.jdbc.support.GeneratedKeyHolder;
@ -40,7 +40,21 @@ import org.springframework.transaction.support.TransactionTemplate;
import play.Logger;
import play.Play;
import play.libs.Json;
import wherehows.models.*;
import wherehows.models.DashboardDataset;
import wherehows.models.Dataset;
import wherehows.models.DatasetAccessItem;
import wherehows.models.DatasetAccessibility;
import wherehows.models.DatasetColumnComment;
import wherehows.models.DatasetComment;
import wherehows.models.DatasetDependency;
import wherehows.models.DatasetInstance;
import wherehows.models.DatasetListViewNode;
import wherehows.models.DatasetPartition;
import wherehows.models.ImpactDataset;
import wherehows.models.SimilarColumns;
import wherehows.models.SimilarComments;
import wherehows.models.User;
public class DatasetsDAO extends AbstractMySQLOpenSourceDAO
{
@ -348,35 +362,6 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO
"JOIN cfg_database d on l.db_id = d.db_id WHERE dataset_id = ? and partition_grain = ? " +
"ORDER by l.data_time_expr DESC";
private static final String GET_DATASET_PRIVACY_COMPLIANCE_BY_DATASET_ID =
"SELECT * FROM dataset_privacy_compliance WHERE dataset_id = ?";
private static final String GET_DATASET_PRIVACY_COMPLIANCE_BY_URN =
"SELECT * FROM dataset_privacy_compliance WHERE dataset_urn = ?";
private final static String INSERT_DATASET_PRIVACY_COMPLIANCE =
"INSERT INTO dataset_privacy_compliance (dataset_id, dataset_urn, compliance_purge_type, "
+ "compliance_purge_entities, modified_time) VALUES (:id, :urn, :type, :entities, :modified) "
+ "ON DUPLICATE KEY UPDATE compliance_purge_type = :type, compliance_purge_entities = :entities, "
+ "modified_time = :modified";
private static final String GET_DATASET_SECURITY_BY_DATASET_ID =
"SELECT dataset_id, dataset_urn, dataset_classification, confidentiality, classification, record_owner_type, "
+ "retention_policy, geographic_affinity, modified_time FROM dataset_security WHERE dataset_id = ?";
private static final String GET_DATASET_SECURITY_BY_URN =
"SELECT dataset_id, dataset_urn, dataset_classification, confidentiality, classification, record_owner_type, "
+ "retention_policy, geographic_affinity, modified_time FROM dataset_security WHERE dataset_urn = ?";
private final static String INSERT_DATASET_SECURITY =
"INSERT INTO dataset_security (dataset_id, dataset_urn, dataset_classification, confidentiality, classification, "
+ "record_owner_type, retention_policy, geographic_affinity, modified_time) "
+ "VALUES (:id, :urn, :dataset_classification, :confidentiality, :classification, :ownerType, :policy, :geo, :modified) "
+ "ON DUPLICATE KEY UPDATE "
+ "dataset_classification = :dataset_classification, confidentiality = :confidentiality, "
+ "classification = :classification, record_owner_type = :ownerType, retention_policy = :policy, "
+ "geographic_affinity = :geo, modified_time = :modified";
public static List<String> getDatasetOwnerTypes()
{