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

Resolve code scanning finds #65

Merged
merged 1 commit into from
Feb 21, 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 .github/workflows/codeql.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,5 +71,5 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_ID }}
path: /home/runner/work/codeql/results
path: /home/runner/work/il-gcc-form-flow/results
retention-days: 14
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public class CheckIndicatedContactMethodIsProvided implements Action {
@Autowired
MessageSource messageSource;

@Override
public Map<String, List<String>> runValidation(FormSubmission formSubmission, Submission submission) {
log.info("Running CheckIndicatedContactMethodIsProvided");
String HOW_TO_CONTACT_YOU_INPUT = "howToContactYou[]";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,40 +23,44 @@
@Component
public class SendEmailConfirmation implements Action {

@Autowired
MessageSource messageSource;
@Autowired
private PdfService pdfService;
@Autowired
private MailgunEmailClient mailgunEmailClient;
private final MessageSource messageSource;
private final PdfService pdfService;
private final MailgunEmailClient mailgunEmailClient;

@Value("${form-flow.flow.ubi.email.confirmation.cc:}")
private List<String> emailToCc;

@Value("${form-flow.flow.ubi.email.confirmation.bcc:}")
private List<String> emailToBcc;

public SendEmailConfirmation(MessageSource messageSource, PdfService pdfService, MailgunEmailClient mailgunEmailClient) {
this.messageSource = messageSource;
this.pdfService = pdfService;
this.mailgunEmailClient = mailgunEmailClient;
}

@Override
public void run(Submission submission) {
ArrayList<String> howToContactYou = (ArrayList<String>) submission.getInputData().get("howToContactYou[]");
Boolean agreesToEmailContact = howToContactYou.stream().anyMatch(contactType -> contactType.equals("email"));
List<String> howToContactYou = (List<String>) submission.getInputData().get("howToContactYou[]");
boolean agreesToEmailContact = howToContactYou.stream().anyMatch(contactType -> contactType.equals("email"));
if (!agreesToEmailContact) {
return;
}
String recipientEmail = (String) submission.getInputData().get("email");
if (recipientEmail == null || recipientEmail.isBlank()) {
return;
}
Optional<Boolean> requireTls = Optional.empty();
// Optional<Boolean> requireTls = Optional.empty();

String emailSubject = messageSource.getMessage("email.subject", null, null);
Object[] args = new Object[]{submission.getId().toString()};
String emailBody = messageSource.getMessage("email.body", args, null);
// String emailSubject = messageSource.getMessage("email.subject", null, null);
// Object[] args = new Object[]{submission.getId().toString()};
// String emailBody = messageSource.getMessage("email.body", args, null);
List<File> pdfs = new ArrayList<File>();
generateApplicationAndAttachToEmail(recipientEmail, emailSubject, emailToCc, emailToBcc, emailBody, pdfs, requireTls, submission);
// generateApplicationAndAttachToEmail(recipientEmail, emailSubject, emailToCc, emailToBcc, emailBody, pdfs, requireTls, submission);

String nextStepsSubject = messageSource.getMessage("next-steps-email.subject", null, null);
String nextStepsBody = messageSource.getMessage("next-steps-email.body", null, null);
pdfs = new ArrayList<File>();
pdfs = new ArrayList<>();
MessageResponse nextStepsResponse = mailgunEmailClient.sendEmail(
nextStepsSubject,
recipientEmail,
Expand All @@ -65,45 +69,9 @@ public void run(Submission submission) {
nextStepsBody,
pdfs
);
Boolean confirmationWasQueued = nextStepsResponse.getMessage().contains("Queued. Thank you.");
boolean confirmationWasQueued = nextStepsResponse.getMessage().contains("Queued. Thank you.");
log.info("Mailgun MessageResponse confirms message was queued (true/false): " + confirmationWasQueued);
submission.getInputData().put("confirmationEmailQueued", confirmationWasQueued.toString());
submission.getInputData().put("confirmationEmailQueued", Boolean.toString(confirmationWasQueued));
submission.setInputData(submission.getInputData());
}

public MessageResponse generateApplicationAndAttachToEmail(
String recipientEmail,
String emailSubject,
List<String> emailToCc,
List<String> emailToBcc,
String emailBody,
List<File>pdfs,
Optional requireTls,
Submission submission){
try {
String generateStringPrefixName = pdfService.generatePdfName(submission);
File pdf = File.createTempFile(generateStringPrefixName, ".pdf");
byte[] pdfByteArray = pdfService.getFilledOutPDF(submission);
FileOutputStream fos = new FileOutputStream(pdf);
fos.write(pdfByteArray);
fos.flush();
pdfs.add(pdf);
MessageResponse response;
if(requireTls.isPresent() && requireTls.get().equals(false)){
mailgunEmailClient.setRequireTls(false);
}
response = mailgunEmailClient.sendEmail(
emailSubject,
recipientEmail,
emailToCc,
emailToBcc,
emailBody,
pdfs
);
pdf.delete();
return response;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public class SetLanguagePreferences implements Action {

public static final Map<String, String> LOCALE_TO_LANG = Map.of("es", "Spanish", "en", "English");

@Override
public void run(Submission submission) {
Locale locale = LocaleContextHolder.getLocale();

Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public class ValidateChildrenCCAPStartDate extends VerifyDate {
private final String INPUT_NAME = "ccapStartDate";
private static final String EARLIEST_DATE_SUPPORTED = "01/01/1901";
private static final DateTimeFormatter dtf = DateTimeFormat.forPattern("MM/dd/yyyy");
@Override
public Map<String, List<String>> runValidation(FormSubmission formSubmission, Submission submission) {
log.info("Running ValidateCCAPStartDate");
Locale locale = LocaleContextHolder.getLocale();
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
@Component
public class ClassesTaughtSchedule implements Condition {

@Override
public Boolean run(Submission submission) {
return SubmissionUtilities.getProgramSchedule(submission).equalsIgnoreCase("NO");
}
Expand Down

This file was deleted.

This file was deleted.

Loading
Loading