
prerna.reactor.masterdatabase.GetDatabaseConnectionsReactor Maven / Gradle / Ivy
The newest version!
package prerna.reactor.masterdatabase;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import prerna.auth.utils.SecurityEngineUtils;
import prerna.masterdatabase.utility.MasterDatabaseUtility;
import prerna.reactor.AbstractReactor;
import prerna.sablecc2.om.GenRowStruct;
import prerna.sablecc2.om.PixelDataType;
import prerna.sablecc2.om.PixelOperationType;
import prerna.sablecc2.om.ReactorKeysEnum;
import prerna.sablecc2.om.nounmeta.NounMetadata;
public class GetDatabaseConnectionsReactor extends AbstractReactor {
public GetDatabaseConnectionsReactor() {
this.keysToGet = new String[]{ReactorKeysEnum.COLUMNS.getKey(), ReactorKeysEnum.DATABASE.getKey()};
}
@Override
public NounMetadata execute() {
String databaseId = getDatabaseId();
if(databaseId != null) {
databaseId = MasterDatabaseUtility.testDatabaseIdIfAlias(databaseId);
}
List appliedDatabaseFilters = new Vector();
// account for security
// TODO: THIS WILL NEED TO ACCOUNT FOR COLUMNS AS WELL!!!
List databaseFilters = SecurityEngineUtils.getFullUserEngineIds(this.insight.getUser());
if(!databaseFilters.isEmpty()) {
if(databaseId != null) {
// need to make sure it is a valid engine id
if(!databaseFilters.contains(databaseId)) {
throw new IllegalArgumentException("Database does not exist or user does not have access to database");
}
// we are good
appliedDatabaseFilters.add(databaseId);
} else {
// set default as filters
appliedDatabaseFilters = databaseFilters;
}
} else {
if(databaseId != null) {
appliedDatabaseFilters.add(databaseId);
}
}
List inputColumnValues = getColumns();
List localConceptIds = MasterDatabaseUtility.getLocalConceptIdsFromLogicalName(inputColumnValues);
localConceptIds.addAll(MasterDatabaseUtility.getConceptualIdsWithSimilarLogicalNames(localConceptIds));
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy