Skip to content

Commit

Permalink
#850 | DBRepo.findTableDetailsByName() make use of targetTable schema…
Browse files Browse the repository at this point in the history
… instead of onlyInOrgSchema
  • Loading branch information
himeshr committed Jan 21, 2025
1 parent b6e2ae1 commit 6c10ce0
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,11 @@ private List<FieldDetails> getFields(Database database) {
}
}

public TableDetails findTableDetailsByName(Database database, TableDetails targetTable, boolean onlyInOrgSchema) {
public TableDetails findTableDetailsByName(Database database, TableDetails targetTable) {
MetabaseDatabaseInfo databaseInfo = getDatabaseDetails(database);
return databaseInfo.getTables().stream()
.filter(tableDetail -> tableDetail.getName().equalsIgnoreCase(targetTable.getName())
&& (tableDetail.getSchema().equalsIgnoreCase(database.getName()) == onlyInOrgSchema))
&& (tableDetail.getSchema().equalsIgnoreCase(database.getName()) == targetTable.getSchema().equalsIgnoreCase(database.getName())))
.findFirst()
.orElseThrow(() -> new RuntimeException("Table with name " + targetTable.getName() + " not found."));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,10 @@ public void createQuestionForASingleTable(Database database, TableDetails tableD
}

private MetabaseQuery createAdvancedQuery(String primaryTableName, String secondaryTableName, QuestionConfig config, Database database) {
TableDetails primaryTable = databaseRepository.findTableDetailsByName(database, new TableDetails(primaryTableName), false);
TableDetails primaryTable = databaseRepository.findTableDetailsByName(database, new TableDetails(primaryTableName));
FieldDetails primaryField = databaseRepository.getFieldDetailsByName(database, primaryTable, new FieldDetails(config.getPrimaryField()));

TableDetails secondaryTable = databaseRepository.findTableDetailsByName(database, new TableDetails(secondaryTableName), false);
TableDetails secondaryTable = databaseRepository.findTableDetailsByName(database, new TableDetails(secondaryTableName));
FieldDetails breakoutField = databaseRepository.getFieldDetailsByName(database, secondaryTable, new FieldDetails(config.getBreakoutField()));

return new MetabaseQueryBuilder(database, ObjectMapperSingleton.getObjectMapper().createArrayNode())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,14 +99,13 @@ public void createQuestionForTable(TableDetails tableDetails, TableDetails addre
public void createQuestionForTable(String tableName) {
Database database = getGlobalDatabase();

TableDetails tableDetails = new TableDetails(tableName, database.getName());
TableDetails fetchedTableDetails = databaseRepository.findTableDetailsByName(database, tableDetails, true);
TableDetails fetchedTableDetails = databaseRepository.findTableDetailsByName(database, new TableDetails(tableName, database.getName()));

questionRepository.createQuestionForASingleTable(database, fetchedTableDetails);
}

private List<String> getSubjectTypeNames() {
TableDetails fetchedMetadataTable = databaseRepository.findTableDetailsByName(getGlobalDatabase(), new TableDetails("table_metadata"), false);
TableDetails fetchedMetadataTable = databaseRepository.findTableDetailsByName(getGlobalDatabase(), new TableDetails("table_metadata"));

DatasetResponse datasetResponse = databaseRepository.findAll(fetchedMetadataTable, getGlobalDatabase());
List<List<String>> rows = datasetResponse.getData().getRows();
Expand All @@ -129,7 +128,7 @@ private List<String> getSubjectTypeNames() {
}

private List<String> getProgramAndEncounterNames() {
TableDetails fetchedMetadataTable = databaseRepository.findTableDetailsByName(getGlobalDatabase(), new TableDetails("table_metadata"), false);
TableDetails fetchedMetadataTable = databaseRepository.findTableDetailsByName(getGlobalDatabase(), new TableDetails("table_metadata"));

DatasetResponse datasetResponse = databaseRepository.findAll(fetchedMetadataTable, getGlobalDatabase());
List<List<String>> rows = datasetResponse.getData().getRows();
Expand All @@ -153,13 +152,12 @@ private List<String> getProgramAndEncounterNames() {
private void createQuestionsForEntities(List<String> entityNames, FieldDetails addressFieldDetails, FieldDetails entityFieldDetails) {
ensureSyncComplete();
Database database = getGlobalDatabase();
TableDetails fetchedAddressTableDetails = databaseRepository.findTableDetailsByName(database, new TableDetails(ADDRESS_TABLE, database.getName()), true);
TableDetails fetchedAddressTableDetails = databaseRepository.findTableDetailsByName(database, new TableDetails(ADDRESS_TABLE, database.getName()));

List<String> filteredEntities = filterOutExistingQuestions(entityNames);

for (String entityName : filteredEntities) {
TableDetails entityTableDetails = new TableDetails(entityName, database.getName());
TableDetails fetchedEntityTableDetails = databaseRepository.findTableDetailsByName(database, entityTableDetails, true);
TableDetails fetchedEntityTableDetails = databaseRepository.findTableDetailsByName(database, new TableDetails(entityName, database.getName()));
createQuestionForTable(fetchedEntityTableDetails, fetchedAddressTableDetails, addressFieldDetails, entityFieldDetails);
}
}
Expand Down

0 comments on commit 6c10ce0

Please sign in to comment.