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); 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); 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 // first mark existing owners as deleted, new owners will be updated later
jdbcTemplate.update(MARK_DATASET_OWNERS_AS_DELETED, datasetId); jdbcTemplate.update(MARK_DATASET_OWNERS_AS_DELETED, datasetId);

View File

@ -198,7 +198,7 @@ public class Dataset extends Controller {
ObjectNode result = Json.newObject(); ObjectNode result = Json.newObject();
try { 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"); result.put("status", "ok");
} catch (Exception e) { } catch (Exception e) {
result.put("status", "failed"); result.put("status", "failed");
@ -278,7 +278,7 @@ public class Dataset extends Controller {
} }
try { try {
DATASETS_DAO.updateDatasetOwners(JDBC_TEMPLATE, id, owners); DATASETS_DAO.updateDatasetOwners(JDBC_TEMPLATE, username, id, owners);
result.put("status", "success"); result.put("status", "success");
} catch (Exception e) { } catch (Exception e) {
result.put("status", "failed"); result.put("status", "failed");

View File

@ -13,6 +13,8 @@
*/ */
package dao; package dao;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.net.URL; import java.net.URL;
@ -20,16 +22,14 @@ import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.time.Instant;
import java.util.*;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import com.fasterxml.jackson.databind.JsonNode; import java.util.HashMap;
import com.fasterxml.jackson.databind.node.ObjectNode; import java.util.List;
import org.springframework.jdbc.core.BatchPreparedStatementSetter; import java.util.Map;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.dao.DataAccessException; import org.springframework.dao.DataAccessException;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.PreparedStatementCreator; import org.springframework.jdbc.core.PreparedStatementCreator;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.jdbc.support.GeneratedKeyHolder; import org.springframework.jdbc.support.GeneratedKeyHolder;
@ -40,7 +40,21 @@ import org.springframework.transaction.support.TransactionTemplate;
import play.Logger; import play.Logger;
import play.Play; import play.Play;
import play.libs.Json; 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 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 = ? " + "JOIN cfg_database d on l.db_id = d.db_id WHERE dataset_id = ? and partition_grain = ? " +
"ORDER by l.data_time_expr DESC"; "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() public static List<String> getDatasetOwnerTypes()
{ {