Skip to content

Commit

Permalink
Start adding logic for mapping ece fields to ours in for Jackson
Browse files Browse the repository at this point in the history
conversion.
  • Loading branch information
bseeger committed Dec 11, 2023
1 parent 785671e commit 9737efd
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import lombok.Setter;
import org.ladocuploader.app.csv.converters.AddressStreetConverter;
import org.ladocuploader.app.csv.converters.PhoneNumberConverter;
import org.ladocuploader.app.utils.HouseholdUtilities;

@Getter
@Setter
Expand Down Expand Up @@ -272,11 +273,12 @@ public class ECEApplicationCsvModel extends BaseCsvModel {
String childsImmunizationRecordDocument;

@CsvBindByName(column="Notes on immunization records, if needed {{59f6d133-3da5-4c3e-bbf8-e7383bea4913}}")
String childImmunicationRecordNotes;
String childImmunizationRecordNotes;

@CsvBindByName(column="How many adults are in the household? {{6c7586e5-b989-402a-b1bd-7f7474e4a7fc}}")
String numberOfAdultsInHousehold;


// *** START Adult One *** UNUSED FIELDS, Use other Adult one section fields below ***
@CsvBindByName(column="[NO LONGER ON APPLICATION] For each adult in the household (18+ years old, up to 3 adults), provide the following information. Is Adult 1 (yourself) working, in school, or in a training program? {{316a6e00-a7bd-49f1-9432-f58d3d401ae4}}")
String isAdultOneSchoolWorkTraining;
Expand Down Expand Up @@ -763,7 +765,7 @@ public class ECEApplicationCsvModel extends BaseCsvModel {
@CsvBindByName(column="If yes, list center name {{f5b660ae-c39f-4957-9dbc-fed8dea82f0a}}")
String centerName;
@CsvBindByName(column="Does the parent participate in Parents As Educators Kingsley House program? {{102d4312-b812-477c-a703-c7bc928e95c5}}")
String doesParentParticpateKingslyHouseProgram;
String doesParentParticipateKingslyHouseProgram;
@CsvBindByName(column="Is a parent/guardian active military? {{66af33a9-a309-4a4a-a916-5bcbe6504a3d}}")
String isParentGuardianActiveMilitary;
@CsvBindByName(column="Is the applicant parent pregnant? {{e9d593bd-e5fe-431b-a133-fb7333114719}}")
Expand Down Expand Up @@ -792,7 +794,29 @@ public class ECEApplicationCsvModel extends BaseCsvModel {
public static BaseCsvModel generateModel(Submission submission) throws JsonProcessingException {
Map<String, Object> inputData = submission.getInputData();
inputData.put("id", submission.getId());
ECEApplicationCsvModel eceApp = mapper.convertValue(inputData, ECEApplicationCsvModel.class);
List<Map<String, Object>> householdList = (List)inputData.get("household");

// this is the data that jackson will map into the EceModel, not inputData
Map<String, Object> eceDataMap = new HashMap<>();

int numberOfAdultsInHousehold = 0;

for (Map<String, Object> member : householdList) {
boolean is18orOlder = HouseholdUtilities.isMember18orOlder(
Integer.parseInt((String)member.get("householdMemberBirthDay")),
Integer.parseInt((String)member.get("householdMemberBirthMonth")),
Integer.parseInt((String)member.get("householdMemberBirthYear"))
);

if (is18orOlder) {
numberOfAdultsInHousehold++;
}
}
eceDataMap.put("numberOfAdultsInHousehold", numberOfAdultsInHousehold);



ECEApplicationCsvModel eceApp = mapper.convertValue(eceDataMap, ECEApplicationCsvModel.class);
eceApp.setSubmissionId(submission.getId());
return eceApp;
}
Expand Down
22 changes: 22 additions & 0 deletions src/main/java/org/ladocuploader/app/utils/HouseholdUtilities.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package org.ladocuploader.app.utils;

import java.util.Calendar;

public class HouseholdUtilities {

public static boolean isMember18orOlder(int day, int month, int year) {

Calendar memberBirthDayCal = Calendar.getInstance();
memberBirthDayCal.set(Calendar.YEAR, year);
memberBirthDayCal.set(Calendar.MONTH, month);
memberBirthDayCal.set(Calendar.DAY_OF_MONTH, day);

Calendar cal = Calendar.getInstance();
cal.set(year, month, day);
cal.add(Calendar.YEAR, -18);

// these are converted to milliseconds since Epoch and then compared.
// if the memberBirthDayCal is < or == the cal, then they are 18+ years old.
return memberBirthDayCal.compareTo(cal) <= 0;
}
}

0 comments on commit 9737efd

Please sign in to comment.