Skip to content

Commit

Permalink
#850 | id fixed in dashcard, refactored code in databaseservice
Browse files Browse the repository at this point in the history
  • Loading branch information
ombhardwajj committed Feb 13, 2025
1 parent ea85d32 commit 0b1cab8
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ public class DatabaseService implements IQuestionCreationService {

public static final List<String> PROG_ENROLMENT_TABLE_FIELDS = List.of(ID, UUID, ENROLMENT_DATE_TIME, CREATED_DATE_TIME, LAST_MODIFIED_DATE_TIME);
public static final List<String> INDIVIDUAL_TABLE_FIELDS = List.of(ID, UUID, SUBJECT_TYPE_ID, FIRST_NAME, MIDDLE_NAME, LAST_NAME, DATE_OF_BIRTH, ADDRESS_ID, REGISTRATION_DATE, CREATED_DATE_TIME, LAST_MODIFIED_DATE_TIME);
public static final int SECOND_CARD_COL_IDX = 12;
private static final int FIRST_CARD_COL_IDX = 0;

private final DatabaseRepository databaseRepository;
private final MetabaseService metabaseService;
Expand Down Expand Up @@ -248,25 +250,20 @@ private void createQuestionForJoinedTable(Database database, String tableName) {
}

private void createIndividualTypeGenderAddress(Database database, String displayName) {
TableDetails primaryTableDetails = new TableDetails(INDIVIDUAL_TABLE);
TableDetails primaryTableDetails = databaseRepository.findTableDetailsByName(database, new TableDetails(INDIVIDUAL_TABLE));
TableDetails subjectTypeTableDetails = new TableDetails(SUBJECT_TYPE_TABLE);
TableDetails genderTableDetails = new TableDetails(GENDER_TABLE);
TableDetails addressTableDetails = new TableDetails(ADDRESS_TABLE, database.getName());
TableDetails fetchedEntityTableDetails = databaseRepository.findTableDetailsByName(database, primaryTableDetails);
fetchedEntityTableDetails.setDisplayName(displayName);
fetchedEntityTableDetails.setDescription(displayName);
primaryTableDetails.setDisplayName(displayName);
primaryTableDetails.setDescription(displayName);

List<FieldDetails> primaryTableFieldsDetails = getPrimaryTableFields(database, INDIVIDUAL_TABLE_FIELDS, primaryTableDetails);
List<FieldDetails> subjectTypeTableFieldsDetails = getSubjectTypeFields(database, subjectTypeTableDetails);

List<FieldDetails> genderTableFieldsDetails = getGenderFields(database, genderTableDetails);

List<FieldDetails> addressTableFieldsDetails = getAddressFields(database, addressTableDetails);

List<JoinTableConfig> joinTableConfigs = getISGAJoinTableConfigs(database, subjectTypeTableFieldsDetails, genderTableFieldsDetails, addressTableFieldsDetails);

List<FieldDetails> primaryTableFieldsDetails = getPrimaryTableFields(database, INDIVIDUAL_TABLE_FIELDS, primaryTableDetails);

questionRepository.createQuestionForTableWithMultipleJoins(database, fetchedEntityTableDetails, joinTableConfigs, primaryTableFieldsDetails);
questionRepository.createQuestionForTableWithMultipleJoins(database, primaryTableDetails, joinTableConfigs, primaryTableFieldsDetails);
}

private List<JoinTableConfig> getISGAJoinTableConfigs(Database database, List<FieldDetails> subjectTypeTableFieldsDetails, List<FieldDetails> genderTableFieldsDetails, List<FieldDetails> addressTableFieldsDetails) {
Expand Down Expand Up @@ -307,23 +304,21 @@ private List<FieldDetails> getSubjectTypeFields(Database database, TableDetails
}

private void createEnrolmentTypeIndividualAddress(Database database, String displayName) {
TableDetails primaryTableDetails = new TableDetails(ENROLMENT_TABLE);
TableDetails primaryTableDetails = databaseRepository.findTableDetailsByName(database, new TableDetails(ENROLMENT_TABLE));
TableDetails programTableDetails = new TableDetails(PROGRAM_TABLE);
TableDetails individualTableDetails = new TableDetails(INDIVIDUAL_TABLE);
TableDetails addressTableDetails = new TableDetails(ADDRESS_TABLE, database.getName());

TableDetails fetchedEntityTableDetails = databaseRepository.findTableDetailsByName(database, primaryTableDetails);
fetchedEntityTableDetails.setDisplayName(displayName);
fetchedEntityTableDetails.setDescription(displayName);
primaryTableDetails.setDisplayName(displayName);
primaryTableDetails.setDescription(displayName);

List<FieldDetails> programTableFieldsDetails = getProgramFields(database, programTableDetails);
List<FieldDetails> individualTableFieldsDetails = getIndividualFields(database, individualTableDetails);
List<FieldDetails> addressTableFieldsDetails = getAddressFields(database, addressTableDetails);
List<JoinTableConfig> joinTableConfigs = getPEIAJoinTableConfigs(database, programTableFieldsDetails, individualTableFieldsDetails, addressTableFieldsDetails);

List<FieldDetails> primaryTableFieldsDetails = getPrimaryTableFields(database, PROG_ENROLMENT_TABLE_FIELDS, primaryTableDetails);

questionRepository.createQuestionForTableWithMultipleJoins(database, fetchedEntityTableDetails, joinTableConfigs, primaryTableFieldsDetails);
questionRepository.createQuestionForTableWithMultipleJoins(database, primaryTableDetails, joinTableConfigs, primaryTableFieldsDetails);
}

private List<FieldDetails> getPrimaryTableFields(Database database, List<String> primaryTableFields, TableDetails primaryTableDetails) {
Expand Down Expand Up @@ -386,21 +381,19 @@ private void createCustomQuestions() {

public void updateGlobalDashboardWithCustomQuestions() {
List<Dashcard> dashcards = new ArrayList<>();
dashcards.add(new Dashcard(-1, getCardIdByQuestionName(QuestionName.NonVoidedIndividual.getQuestionName()), null, 0, 0, 12, 8));
dashcards.add(new Dashcard(-2, getCardIdByQuestionName(QuestionName.NonExitedNonVoidedProgram.getQuestionName()), null, 0, 12, 12, 8));

metabaseDashboardRepository.updateDashboard(getGlobalDashboard().getId(), new DashboardUpdateRequest(dashcards));
addFilterToDashboard();
dashcards.add(new Dashcard(-1, getCardIdByQuestionName(QuestionName.NonVoidedIndividual.getQuestionName()), null, 0, FIRST_CARD_COL_IDX, 12, 8,Collections.emptyMap(), createDashcardParameterMappingForFirstDashcard()));
dashcards.add(new Dashcard(-2, getCardIdByQuestionName(QuestionName.NonExitedNonVoidedProgram.getQuestionName()), null, 0, SECOND_CARD_COL_IDX, 12, 8, Collections.emptyMap(), createDashcardParameterMappingForSecondDashcard()));

metabaseDashboardRepository.updateDashboard(getGlobalDashboard().getId(), new DashboardUpdateRequest(dashcards,createParametersForDashboard()));
}

private void addFilterToDashboard() {
List<Dashcard> updateDashcards = new ArrayList<>();
updateDashcards.add(new Dashcard(-1, getCardIdByQuestionName(QuestionName.NonVoidedIndividual.getQuestionName()), null, 0, 0, 12, 8, Collections.emptyMap(), createDashcardParameterMappingForFirstDashcard()));
updateDashcards.add(new Dashcard(-2, getCardIdByQuestionName(QuestionName.NonExitedNonVoidedProgram.getQuestionName()), null, 0, 12, 12, 8, Collections.emptyMap(), createDashcardParameterMappingForSecondDashcard()));
metabaseDashboardRepository.updateDashboard(getGlobalDashboard().getId(), new DashboardUpdateRequest(updateDashcards, createParametersForDashboard()));

}
//todo add this to new tab in cannedReports dashboard
//public void updateGlobalDashboardWithCustomQuestions() {
// List<Dashcard> dashcards = new ArrayList<>();
// dashcards.add(new Dashcard(-1, getCardIdByQuestionName(INDIVIDUAL_TYPE_GENDER_ADDRESS_TABLE), null, 0, FIRST_CARD_COL_IDX, 12, 8, Collections.emptyMap(), createDashcardParameterMappingForFirstDashcard()));
// dashcards.add(new Dashcard(-2, getCardIdByQuestionName(ENROLMENT_TYPE_INDIVIDUAL_ADDRESS_TABLE), null, 0, SECOND_CARD_COL_IDX, 12, 8, Collections.emptyMap(), createDashcardParameterMappingForSecondDashcard()));
// metabaseDashboardRepository.updateDashboard(getGlobalDashboard().getId(), new DashboardUpdateRequest(dashcards, createParametersForDashboard()));
//}

private List<ParameterMapping> createDashcardParameterMappingForFirstDashcard(){
List<ParameterMapping> firstDashcardParameterMapping = new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,6 @@ public CreateQuestionsResponse createQuestions() {
}
try {
databaseService.addCollectionItems();
databaseService.updateGlobalDashboardWithCustomQuestions();
return new CreateQuestionsResponse(true, "Questions created successfully.");
} catch (RuntimeException e) {
return new CreateQuestionsResponse(false, "Database sync is not complete. Cannot create questions.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@

import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.Collections;
import java.util.List;

public class Dashcard {
@JsonProperty("id")
private int dashboardId;
private int id;

@JsonProperty("card_id")
private int cardId;
Expand All @@ -30,20 +29,8 @@ public class Dashcard {
@JsonProperty("parameter_mappings")
private List<ParameterMapping> parameterMappings;

public Dashcard(int dashboardId, int cardId, Integer dashboardTabId, int row, int col, int sizeX, int sizeY) {
this.dashboardId = dashboardId;
this.cardId = cardId;
this.dashboardTabId = dashboardTabId;
this.row = row;
this.col = col;
this.sizeX = sizeX;
this.sizeY = sizeY;
this.visualizationSettings = Collections.emptyMap();
this.parameterMappings = Collections.emptyList();
}

public Dashcard(int dashboardId, int cardId, Integer dashboardTabId, int row, int col, int sizeX, int sizeY, Object visualizationSettings, List<ParameterMapping> parameterMappings) {
this.dashboardId = dashboardId;
public Dashcard(int id, int cardId, Integer dashboardTabId, int row, int col, int sizeX, int sizeY, Object visualizationSettings, List<ParameterMapping> parameterMappings) {
this.id = id;
this.cardId = cardId;
this.dashboardTabId = dashboardTabId;
this.row = row;
Expand All @@ -54,8 +41,8 @@ public Dashcard(int dashboardId, int cardId, Integer dashboardTabId, int row, in
this.parameterMappings = parameterMappings;
}

public int getDashboardId() {
return dashboardId;
public int getId() {
return id;
}

public int getCardId() {
Expand Down Expand Up @@ -85,7 +72,7 @@ public int getSizeY() {
@Override
public String toString() {
return "{" +
"dashboardId=" + dashboardId +
"id=" + id +
", cardId=" + cardId +
", dashboardTabId=" + dashboardTabId +
", row=" + row +
Expand Down

0 comments on commit 0b1cab8

Please sign in to comment.