Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update FFL to 1.1.0: Update Submission based date field calls to use OffsetDateTime #467

Merged
merged 9 commits into from
Jan 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ repositories {
}

def profile = props.getProperty('SPRING_PROFILES_ACTIVE')
def formFlowLibraryVersion = '1.0.0'
def formFlowLibraryVersion = '1.1.0'
def useLocalLibrary = System.getenv('USE_LOCAL_LIBRARY')

dependencies {
Expand Down
13 changes: 7 additions & 6 deletions src/main/java/org/ladocuploader/app/cli/SubmissionTransfer.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
Expand Down Expand Up @@ -51,9 +52,9 @@ public class SubmissionTransfer {

private final int BATCH_INDEX_LEN = "00050000000".length();

private final long TWO_HOURS = (1000 * 60 * 60) * 2;
private final long TWO_HOURS = 2L;

private final SimpleDateFormat MMDDYYYY_HHMMSS = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");
public static final DateTimeFormatter MMDDYYYY_HHMMSS = DateTimeFormatter.ofPattern("MM/dd/yyyy hh:mm:ss");

private final TransmissionRepository transmissionRepository;
private final UserFileRepositoryService fileRepositoryService;
Expand Down Expand Up @@ -91,10 +92,10 @@ public void transferSubmissions() {
int subfolderidx = 1;
try (FileOutputStream baos = new FileOutputStream(zipFileName);
ZipOutputStream zos = new ZipOutputStream(baos)) {
long now = new Date().getTime();
OffsetDateTime submittedAtCutoff = OffsetDateTime.now().minusHours(TWO_HOURS);
StringBuilder docMeta = new StringBuilder();
for (Submission submission : submissionsBatch) {
if (submission.getSubmittedAt().getTime() + TWO_HOURS > now) {
if (submission.getSubmittedAt().isAfter(submittedAtCutoff)) {
// Give a 2-hour wait for folks to upload documents
continue;
}
Expand Down Expand Up @@ -198,7 +199,7 @@ private String generateMetaDataEntry(String batchIndex, String subfolder, String
String formattedSSN = encryptor.decrypt((String) inputData.getOrDefault("encryptedSSN", ""));
String formattedFilename = removeFileExtension(filename);
String formattedBirthdate = formatBirthdate(submission.getInputData());
String formattedSubmissionDate = MMDDYYYY_HHMMSS.format(submission.getSubmittedAt());
String formattedSubmissionDate = submission.getSubmittedAt().format(MMDDYYYY_HHMMSS);
String filelocation = String.format("\"%s/%s/%s\",", batchIndex, subfolder, filename);

return "\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\"\n"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,39 @@

import formflow.library.config.submission.Action;
import formflow.library.data.Submission;
import org.joda.time.DateTime;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.time.DayOfWeek;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;


/**
*
*/
@Component
public class FormatSubmittedAtDate implements Action {
public final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("MMMM d, yyyy");
private static final long ONE_DAY = 1000 * 60 * 60 * 24;

private static final long ONE_DAY = 1L;
private static final long TEN_BUSINESS_DAYS = ONE_DAY * 14;

private static final int SATURDAY = 6;
private static final int SUNDAY = 7;
public static final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("MMMM d, yyyy");

@Override
public void run(Submission submission) {
Date submittedAt = submission.getSubmittedAt();
OffsetDateTime submittedAt = submission.getSubmittedAt();

if (submittedAt != null) {
String formattedSubmittedAt = DATE_FORMAT.format(submittedAt);
String formattedSubmittedAt = submittedAt.format(DATE_FORMAT);
submission.getInputData().put("formattedSubmittedAt", formattedSubmittedAt);

DateTime submittedDate = new DateTime(submittedAt);
long tenDaysLater = submittedAt.getTime() + TEN_BUSINESS_DAYS;
if (submittedDate.getDayOfWeek() == SATURDAY) {
tenDaysLater -= ONE_DAY;
} else if (submittedDate.getDayOfWeek() == SUNDAY) {
tenDaysLater -= 2 * ONE_DAY;
OffsetDateTime interviewDate = submittedAt.plusDays(TEN_BUSINESS_DAYS);
if (submittedAt.getDayOfWeek() == DayOfWeek.SATURDAY) {
interviewDate = interviewDate.minusDays(ONE_DAY);
} else if (submittedAt.getDayOfWeek() == DayOfWeek.SUNDAY) {
interviewDate = interviewDate.minusDays(ONE_DAY * 2);
}
String interviewDate = DATE_FORMAT.format(new Date(tenDaysLater));
submission.getInputData().put("interviewDate", interviewDate);

submission.getInputData().put("interviewDate", interviewDate.format(DATE_FORMAT));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import formflow.library.file.CloudFile;
import formflow.library.file.CloudFileRepository;
import formflow.library.pdf.PdfService;
import static java.time.OffsetDateTime.now;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.ladocuploader.app.data.Transmission;
Expand All @@ -22,6 +23,7 @@
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.time.OffsetDateTime;
import java.util.*;
import java.util.stream.Stream;
import java.util.zip.ZipEntry;
Expand Down Expand Up @@ -125,7 +127,7 @@ public void transmitZipFile() throws IOException {
}

private Submission queueInvalidSubmission() {
Date submittedDate = new Date(new Date().getTime() - (1000 * 60 * 60) * 2);
OffsetDateTime submittedDate = OffsetDateTime.now().minusHours(2L);
Submission submission = Submission.builder()
.submittedAt(submittedDate)
.flow("laDigitalAssister")
Expand All @@ -137,7 +139,7 @@ private Submission queueInvalidSubmission() {
}

private Submission queueSubmissionWithDocs() {
Date submittedDate = new Date(new Date().getTime() - (1000 * 60 * 60) * 2);
OffsetDateTime submittedDate = OffsetDateTime.now().minusHours(2L);
var submission = Submission.builder()
.submittedAt(submittedDate)
.flow("laDigitalAssister")
Expand Down Expand Up @@ -174,7 +176,7 @@ private Submission queueSubmissionWithDocs() {
}

private Submission queueSubmissionWithoutDocs() {
Date submittedDate = new Date(new Date().getTime() - (1000 * 60 * 60) * 2);
OffsetDateTime submittedDate = OffsetDateTime.now().minusHours(2L);
Submission submission = Submission.builder()
.submittedAt(submittedDate)
.flow("laDigitalAssister")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,8 @@
import formflow.library.data.UserFileRepository;
import formflow.library.file.CloudFile;
import formflow.library.file.CloudFileRepository;
import io.sentry.util.FileUtils;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.ladocuploader.app.csv.CsvDocument;
import org.ladocuploader.app.csv.CsvPackage;
Expand Down Expand Up @@ -43,13 +41,15 @@
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

import static org.assertj.core.util.DateUtil.now;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.hasItem;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.*;

import static java.time.OffsetDateTime.now;

@ActiveProfiles("test")
@SpringBootTest
@Slf4j
Expand Down Expand Up @@ -188,11 +188,4 @@ void transmitZipFile() throws IOException, JSchException, SftpException, CsvRequ
assertNotNull(transmission.getRunId());

}







}
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
package org.ladocuploader.app.submission.actions;

import formflow.library.data.Submission;
import org.joda.time.LocalDate;
import org.junit.jupiter.api.Test;
import org.ladocuploader.app.utils.TestUtils;

import java.util.Date;
import java.time.OffsetDateTime;
import java.util.HashMap;

import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
import static org.assertj.core.api.Assertions.assertThat;

class FormatSubmittedAtDateTest {

private final FormatSubmittedAtDate action = new FormatSubmittedAtDate();

@Test
public void testWeekday() {
Date friday = new LocalDate("2023-12-22").toDate();
OffsetDateTime friday = TestUtils.makeOffsetDateTime("2023-12-22");
Submission submission = Submission.builder()
.urlParams(new HashMap<>())
.inputData(new HashMap<>())
Expand All @@ -32,11 +32,11 @@ public void testWeekday() {

@Test
public void testSaturday() {
Date friday = new LocalDate("2023-12-23").toDate();
OffsetDateTime saturday = TestUtils.makeOffsetDateTime("2023-12-23");
Submission submission = Submission.builder()
.urlParams(new HashMap<>())
.inputData(new HashMap<>())
.submittedAt(friday)
.submittedAt(saturday)
.build();

action.run(submission);
Expand All @@ -49,11 +49,11 @@ public void testSaturday() {

@Test
public void testSunday() {
Date friday = new LocalDate("2023-12-24").toDate();
OffsetDateTime sunday = TestUtils.makeOffsetDateTime("2023-12-24");
Submission submission = Submission.builder()
.urlParams(new HashMap<>())
.inputData(new HashMap<>())
.submittedAt(friday)
.submittedAt(sunday)
.build();

action.run(submission);
Expand Down
7 changes: 7 additions & 0 deletions src/test/java/org/ladocuploader/app/utils/TestUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.time.OffsetTime;

public class TestUtils {

Expand All @@ -22,6 +25,10 @@ public static String getAbsoluteFilepathString(String resourceFilename) {
return "";
}

public static OffsetDateTime makeOffsetDateTime(String isoDate) {
return LocalDate.parse(isoDate).atTime(OffsetTime.parse("00:00-08:00"));
}

public static byte[] getFileContentsAsByteArray(String filename) throws IOException {
return Files.readAllBytes(getAbsoluteFilepath(filename));
}
Expand Down
Loading