From 9a8cf43ce673e90efe1339ac189d215bce14a749 Mon Sep 17 00:00:00 2001 From: Jinil Sung Date: Mon, 22 Apr 2024 11:28:27 -0700 Subject: [PATCH] GRAD2-2570: the issues have been resolved to support null distribution date for regen cert. GRAD2-2570: the issues have been resolved to support null distribution date for regen cert. --- .../api/batchgraduation/config/RestWebClient.java | 2 +- .../entity/BatchJobExecutionEntity.java | 1 - .../reader/RegenerateCertificatePartitioner.java | 13 ++++--------- .../educ/api/batchgraduation/rest/RestUtils.java | 14 ++++++++++++++ .../util/EducGradBatchGraduationApiConstants.java | 3 +++ api/src/main/resources/application.yaml | 2 ++ api/src/test/resources/application.yaml | 2 ++ 7 files changed, 26 insertions(+), 11 deletions(-) diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/config/RestWebClient.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/config/RestWebClient.java index 2535789d..4d1cf748 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/config/RestWebClient.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/config/RestWebClient.java @@ -27,7 +27,7 @@ public WebClient webClient() { return WebClient.builder().exchangeStrategies(ExchangeStrategies.builder() .codecs(configurer -> configurer .defaultCodecs() - .maxInMemorySize(300 * 1024 * 1024)) // 100 MB + .maxInMemorySize(300 * 1024 * 1024)) // 300 MB .build()).build(); } } diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchJobExecutionEntity.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchJobExecutionEntity.java index 094b9b9a..a46d5a74 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchJobExecutionEntity.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/entity/BatchJobExecutionEntity.java @@ -4,7 +4,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; -import java.time.Instant; import java.time.LocalDateTime; @Data diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/reader/RegenerateCertificatePartitioner.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/reader/RegenerateCertificatePartitioner.java index 8674db96..71e0707d 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/reader/RegenerateCertificatePartitioner.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/reader/RegenerateCertificatePartitioner.java @@ -32,23 +32,18 @@ public class RegenerateCertificatePartitioner extends BasePartitioner { @Override public Map partition(int gridSize) { - ResponseObj res = restUtils.getTokenResponseObject(); - String accessToken = null; - if (res != null) { - accessToken = res.getAccess_token(); - } List credentialList = new ArrayList<>(); JobParameters jobParameters = context.getJobParameters(); String searchRequest = jobParameters.getString(SEARCH_REQUEST); CertificateRegenerationRequest certificateRegenerationRequest = (CertificateRegenerationRequest)jsonTransformer.unmarshall(searchRequest, CertificateRegenerationRequest.class); - if (certificateRegenerationRequest.runForAll()) { + if (certificateRegenerationRequest == null || certificateRegenerationRequest.runForAll()) { Mono parallelDTOMono = parallelDataFetch.fetchDistributionRequiredData(); DistributionDataParallelDTO parallelDTO = parallelDTOMono.block(); if(parallelDTO != null) { credentialList.addAll(parallelDTO.certificateList()); } } else { - credentialList.addAll(getStudentsForUserReqRun(certificateRegenerationRequest, accessToken)); + credentialList.addAll(getStudentsForUserReqRun(certificateRegenerationRequest)); } Set studentSet = new HashSet<>(); @@ -85,9 +80,9 @@ public Map partition(int gridSize) { } // retrieve students based on the search criteria requested by user - private List getStudentsForUserReqRun(CertificateRegenerationRequest certificateRegenerationRequest, String accessToken) { + private List getStudentsForUserReqRun(CertificateRegenerationRequest certificateRegenerationRequest) { if(certificateRegenerationRequest != null && "Y".equalsIgnoreCase(certificateRegenerationRequest.getRunMode())) { - return restUtils.getStudentsForUserReqDisRun("OC", certificateRegenerationRequest); + return restUtils.getStudentsForUserReqDisRunWithNullDistributionDate("OC", certificateRegenerationRequest); } else { return new ArrayList<>(); } diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/rest/RestUtils.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/rest/RestUtils.java index c942ef11..605bffb1 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/rest/RestUtils.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/rest/RestUtils.java @@ -659,6 +659,20 @@ public List getStudentsForUserReqDisRun(String cr .block(); } + public List getStudentsForUserReqDisRunWithNullDistributionDate(String credentialType, StudentSearchRequest req) { + UUID correlationID = UUID.randomUUID(); + String accessToken = getAccessToken(); + final ParameterizedTypeReference> responseType = new ParameterizedTypeReference<>() { + }; + return this.webClient.post() + .uri(String.format(constants.getStudentDataForUserReqDisRunWithNullDistributionDate(),credentialType)) + .headers(h -> { h.setBearerAuth(accessToken); h.set(EducGradBatchGraduationApiConstants.CORRELATION_ID, correlationID.toString()); }) + .body(BodyInserters.fromValue(req)) + .retrieve() + .bodyToMono(responseType) + .block(); + } + public void updateStudentGradRecord(UUID studentID, Long batchId,String activityCode) { //Grad2-1931 not updating the school record if student id does not exist. try { diff --git a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/util/EducGradBatchGraduationApiConstants.java b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/util/EducGradBatchGraduationApiConstants.java index cde6a5cb..152b6959 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/util/EducGradBatchGraduationApiConstants.java +++ b/api/src/main/java/ca/bc/gov/educ/api/batchgraduation/util/EducGradBatchGraduationApiConstants.java @@ -213,6 +213,9 @@ public class EducGradBatchGraduationApiConstants { @Value("${endpoint.grad-graduation-report-api.user-req-dis-run.url}") private String studentDataForUserReqDisRun; + @Value("${endpoint.grad-graduation-report-api.user-req-dis-run-for-not-yet-distributed.url}") + private String studentDataForUserReqDisRunWithNullDistributionDate; + @Value("${endpoint.grad-graduation-api.schoolreport.url}") private String createAndStoreSchoolReports; diff --git a/api/src/main/resources/application.yaml b/api/src/main/resources/application.yaml index f4a20368..4136a68f 100644 --- a/api/src/main/resources/application.yaml +++ b/api/src/main/resources/application.yaml @@ -224,6 +224,8 @@ endpoint: url: ${GRAD_GRADUATION_REPORT_API}api/v1/graduationreports/studentcredential?studentID=%s&credentialTypeCode=%s&paperType=%s&documentStatusCode=%s&activityCode=%s user-req-dis-run: url: ${GRAD_GRADUATION_REPORT_API}api/v1/graduationreports/userrequest/%s + user-req-dis-run-for-not-yet-distributed: + url: ${GRAD_GRADUATION_REPORT_API}api/v1/graduationreports/userrequest/notyetdistributed/%s get-district-data-yearly: url: ${GRAD_GRADUATION_REPORT_API}api/v1/graduationreports/districtdataearly get-certificate-types: diff --git a/api/src/test/resources/application.yaml b/api/src/test/resources/application.yaml index add51811..4dbad8a7 100644 --- a/api/src/test/resources/application.yaml +++ b/api/src/test/resources/application.yaml @@ -154,6 +154,8 @@ endpoint: url: https://educ-grad-graduation-report-api-77c02f-dev.apps.silver.devops.gov.bc.ca/api/v1/graduationreports/studentcredential?studentID=%s&credentialTypeCode=%s&paperType=%s&documentStatusCode=%s&activityCode=%s user-req-dis-run: url: https://educ-grad-graduation-report-api-77c02f-dev.apps.silver.devops.gov.bc.ca/api/v1/graduationreports/userrequest/%s + user-req-dis-run-for-not-yet-distributed: + url: https://educ-grad-graduation-report-api-77c02f-dev.apps.silver.devops.gov.bc.ca/api/v1/graduationreports/userrequest/notyetdistributed/%s get-district-data-yearly: url: https://educ-grad-graduation-report-api-77c02f-dev.apps.silver.devops.gov.bc.ca/api/v1/graduationreports/districtdataearly get-certificate-types: