Skip to content

Commit

Permalink
#850 | Initialize schema for table details
Browse files Browse the repository at this point in the history
  • Loading branch information
himeshr committed Jan 21, 2025
1 parent 54d3af2 commit 6e7506e
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,8 @@ public FieldDetails getFieldDetailsByName(Database database, TableDetails tableD
String snakeCaseTableName = S.toSnakeCase(tableDetails.getName());

return fieldsList.stream()
.filter(field -> snakeCaseTableName.equals(field.getTableName()) && fieldDetails.getName().equals(field.getName()))
.filter(field -> snakeCaseTableName.equals(field.getTableName()) && fieldDetails.getName().equals(field.getName())
&& (field.getSchema().equalsIgnoreCase(database.getName()) == (tableDetails.getSchema().equalsIgnoreCase(database.getName()))))
.findFirst()
.orElseThrow(() -> new RuntimeException("Field " + fieldDetails.getName() + " not found in table " + tableDetails.getName()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ public void createQuestionForTable(TableDetails tableDetails, TableDetails addre
public void createQuestionForTable(String tableName) {
Database database = getGlobalDatabase();

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

questionRepository.createQuestionForASingleTable(database, fetchedTableDetails);
Expand Down Expand Up @@ -152,13 +152,14 @@ private List<String> getProgramAndEncounterNames() {

private void createQuestionsForEntities(List<String> entityNames, FieldDetails addressFieldDetails, FieldDetails entityFieldDetails) {
ensureSyncComplete();
TableDetails fetchedAddressTableDetails = databaseRepository.findTableDetailsByName(getGlobalDatabase(), new TableDetails(ADDRESS_TABLE), true);
Database database = getGlobalDatabase();
TableDetails fetchedAddressTableDetails = databaseRepository.findTableDetailsByName(database, new TableDetails(ADDRESS_TABLE, database.getName()), true);

List<String> filteredEntities = filterOutExistingQuestions(entityNames);

for (String entityName : filteredEntities) {
TableDetails entityTableDetails = new TableDetails(entityName);
TableDetails fetchedEntityTableDetails = databaseRepository.findTableDetailsByName(getGlobalDatabase(), entityTableDetails, true);
TableDetails entityTableDetails = new TableDetails(entityName, database.getName());
TableDetails fetchedEntityTableDetails = databaseRepository.findTableDetailsByName(database, entityTableDetails, true);
createQuestionForTable(fetchedEntityTableDetails, fetchedAddressTableDetails, addressFieldDetails, entityFieldDetails);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,19 @@

@JsonIgnoreProperties(ignoreUnknown = true)
public class TableDetails {

public static final String DEFAULT_PUBLIC_SCHEMA = "public";

public TableDetails() {
}

public TableDetails(String name) {
this(name, DEFAULT_PUBLIC_SCHEMA);
}

public TableDetails(String name, String schema) {
this.name = name;
this.schema = schema;
}

@JsonProperty("description")
Expand Down

0 comments on commit 6e7506e

Please sign in to comment.