diff --git a/api/src/main/java/ca/bc/gov/educ/api/graduation/service/GradStatusService.java b/api/src/main/java/ca/bc/gov/educ/api/graduation/service/GradStatusService.java index c17c33bb..32f65f11 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/graduation/service/GradStatusService.java +++ b/api/src/main/java/ca/bc/gov/educ/api/graduation/service/GradStatusService.java @@ -69,9 +69,6 @@ public void prepareGraduationStatusData(GraduationStudentRecord obj, GraduationD } public GraduationStudentRecord saveStudentGradStatus(String studentID,Long batchId,String accessToken, GraduationStudentRecord toBeSaved, ExceptionMessage exception) { - if(logger.isDebugEnabled()) { - logger.debug("saveStudentGradStatus {}", jsonTransformer.marshall(toBeSaved)); - } try { String url = educGraduationApiConstants.getUpdateGradStatus(); if(batchId != null) { diff --git a/api/src/main/java/ca/bc/gov/educ/api/graduation/service/GraduationService.java b/api/src/main/java/ca/bc/gov/educ/api/graduation/service/GraduationService.java index 0f99f70f..4e69edee 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/graduation/service/GraduationService.java +++ b/api/src/main/java/ca/bc/gov/educ/api/graduation/service/GraduationService.java @@ -307,16 +307,20 @@ private List filterStudentList(List stdList, String mincode, String accessToken, int numberOfReports) { - ReportData gradReport = getReportDataObj(schoolObj, stdList); - createAndSaveSchoolReportGradRegReport(gradReport, mincode, accessToken); - numberOfReports++; + if(stdList != null && !stdList.isEmpty()) { + ReportData gradReport = getReportDataObj(schoolObj, stdList); + createAndSaveSchoolReportGradRegReport(gradReport, mincode, accessToken); + numberOfReports++; + } return numberOfReports; } private int processNonGradRegReport(School schoolObj, List stdList, String mincode, int numberOfReports) { - ReportData gradReport = getReportDataObj(schoolObj, stdList); - createAndSaveSchoolReportNonGradRegReport(gradReport, mincode); - numberOfReports++; + if(stdList != null && !stdList.isEmpty()) { + ReportData gradReport = getReportDataObj(schoolObj, stdList); + createAndSaveSchoolReportNonGradRegReport(gradReport, mincode); + numberOfReports++; + } return numberOfReports; } @@ -330,9 +334,11 @@ private ReportData getReportDataObj(School schoolObj, List stdList) { } private int processStudentNonGradPrjReport(School schoolObj, List stdList, String mincode, String accessToken, int numberOfReports) { - ReportData nongradProjected = getReportDataObj(schoolObj, stdList); - createAndSaveSchoolReportStudentNonGradPrjReport(nongradProjected, mincode, accessToken); - numberOfReports++; + if(stdList != null && !stdList.isEmpty()) { + ReportData nongradProjected = getReportDataObj(schoolObj, stdList); + createAndSaveSchoolReportStudentNonGradPrjReport(nongradProjected, mincode, accessToken); + numberOfReports++; + } return numberOfReports; } @@ -421,7 +427,7 @@ private byte[] getSchoolReportGradRegReport(ReportData data, String mincode, Str } - + @Generated private byte[] createAndSaveSchoolReportGradRegReport(ReportData data, String mincode, String accessToken) { byte[] bytesSAR = getSchoolReportGradRegReport(data, mincode, accessToken); diff --git a/api/src/main/java/ca/bc/gov/educ/api/graduation/service/RESTService.java b/api/src/main/java/ca/bc/gov/educ/api/graduation/service/RESTService.java index 90d67580..1a64bd7a 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/graduation/service/RESTService.java +++ b/api/src/main/java/ca/bc/gov/educ/api/graduation/service/RESTService.java @@ -155,6 +155,4 @@ public T post(String url, Object body, Class clazz) { private String getErrorMessage(String url, String errorMessage) { return "Service failed to process at url: " + url + " due to: " + errorMessage; } - - } diff --git a/api/src/main/java/ca/bc/gov/educ/api/graduation/service/SchoolReportsService.java b/api/src/main/java/ca/bc/gov/educ/api/graduation/service/SchoolReportsService.java index 22e65722..640b696b 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/graduation/service/SchoolReportsService.java +++ b/api/src/main/java/ca/bc/gov/educ/api/graduation/service/SchoolReportsService.java @@ -222,7 +222,7 @@ public Integer createAndStoreSchoolLabelsReportsFromSchools(String reportType, L } if (pdfs == null) { String schoolLabelMinCode = (schools != null && schools.size() == 1) ? schools.get(0).getMincode() : "000000000"; - saveDistrictOrSchoolOrLabelsReport(accessToken, schoolLabelMinCode, reportType, reportAsBytes); + saveDistrictOrSchoolOrLabelsReport(schoolLabelMinCode, reportType, reportAsBytes); } reportsCount++; return reportsCount; @@ -284,7 +284,7 @@ private Integer createAndStoreSchoolReports(String reportType, List> districtSchoolsMap = new HashMap<>(); for (ReportGradStudentData reportGradStudentData : reportGradStudentDataList) { - School district = populateDistrictObjectByReportGradStudentData(districtSchoolsMap, reportGradStudentData); - processDistrictSchoolMap(districtSchoolsMap.get(district), reportGradStudentData); + String mincode = StringUtils.isBlank(reportGradStudentData.getMincodeAtGrad()) ? reportGradStudentData.getMincode() : reportGradStudentData.getMincodeAtGrad(); + String districtCode = StringUtils.substring(mincode, 0, 3); + String schoolCategoryCode = reportService.getSchoolCategoryCode(accessToken, mincode); + if(!StringUtils.equalsAnyIgnoreCase(schoolCategoryCode, "02")) { + School district = populateDistrictObjectByReportGradStudentData(districtSchoolsMap, reportGradStudentData); + processDistrictSchoolMap(districtSchoolsMap.get(district), reportGradStudentData); + } else { + logger.debug("Skip {} independent school {} for district {}", schoolCategoryCode, mincode, districtCode); + } } for (var entry : districtSchoolsMap.entrySet()) { School district = entry.getKey(); @@ -343,7 +350,7 @@ private Integer createAndStoreDistrictReports(String reportType, List { h.setBearerAuth(accessToken); @@ -372,9 +376,6 @@ private byte[] getSchoolYearEndReportJasper(ReportRequest reportRequest, String @Generated private byte[] getSchoolLabelsReportJasper(ReportRequest reportRequest, String accessToken) { - if(logger.isDebugEnabled()) { - logger.debug("getSchoolLabelsReportJasper(ReportRequest): {}", jsonTransformer.marshall(reportRequest)); - } return webClient.post().uri(educGraduationApiConstants.getSchoolLabels()) .headers(h -> { h.setBearerAuth(accessToken); @@ -385,9 +386,6 @@ private byte[] getSchoolLabelsReportJasper(ReportRequest reportRequest, String a @Generated private byte[] getDistrictYearEndReportJasper(ReportRequest reportRequest, String accessToken) { - if(logger.isDebugEnabled()) { - logger.debug("getDistrictYearEndReportJasper(ReportRequest): {}", jsonTransformer.marshall(reportRequest)); - } return webClient.post().uri(educGraduationApiConstants.getDistrictDistributionYearEnd()) .headers(h -> { h.setBearerAuth(accessToken); @@ -398,9 +396,6 @@ private byte[] getDistrictYearEndReportJasper(ReportRequest reportRequest, Strin @Generated private byte[] getDistrictYearEndNonGradReportJasper(ReportRequest reportRequest, String accessToken) { - if(logger.isDebugEnabled()) { - logger.debug("getDistrictYearEndNonGradReportJasper(ReportRequest): {}", jsonTransformer.marshall(reportRequest)); - } return webClient.post().uri(educGraduationApiConstants.getDistrictDistributionYearEndNonGrad()) .headers(h -> { h.setBearerAuth(accessToken); diff --git a/api/src/main/java/ca/bc/gov/educ/api/graduation/util/GradLocalDateTimeSerializer.java b/api/src/main/java/ca/bc/gov/educ/api/graduation/util/GradLocalDateTimeSerializer.java index a46f405d..a11b3fd3 100644 --- a/api/src/main/java/ca/bc/gov/educ/api/graduation/util/GradLocalDateTimeSerializer.java +++ b/api/src/main/java/ca/bc/gov/educ/api/graduation/util/GradLocalDateTimeSerializer.java @@ -3,8 +3,6 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.IOException; import java.time.LocalDateTime; @@ -12,15 +10,12 @@ public class GradLocalDateTimeSerializer extends JsonSerializer { - private static final Logger logger = LoggerFactory.getLogger(GradLocalDateTimeSerializer.class); - @Override public void serialize(LocalDateTime localDate, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { String fieldName = jsonGenerator.getOutputContext().getCurrentName(); DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME; if(localDate != null) { String value = localDate.format(formatter); - logger.debug("Serialize LocalDateTime of {} to value {}", fieldName, value); jsonGenerator.writeString(value); } } diff --git a/api/src/test/java/ca/bc/gov/educ/api/graduation/service/GraduationServiceTest.java b/api/src/test/java/ca/bc/gov/educ/api/graduation/service/GraduationServiceTest.java index 96a48471..21740d62 100644 --- a/api/src/test/java/ca/bc/gov/educ/api/graduation/service/GraduationServiceTest.java +++ b/api/src/test/java/ca/bc/gov/educ/api/graduation/service/GraduationServiceTest.java @@ -13,12 +13,10 @@ import org.junit.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.runner.RunWith; -import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository; @@ -2040,7 +2038,11 @@ public void testCreateAndStoreSchoolReports() { Mockito.when(gradStatusService.getStudentListByMinCode(mincode, "accessToken")).thenReturn(sList); Mockito.when(schoolService.getTraxSchoolDetails(mincode, "accessToken", exception)).thenReturn(sTrax); int numberOfRecord = graduationService.createAndStoreSchoolReports(uniqueList,"REGALG","accessToken"); - assertEquals(2,numberOfRecord); + assertEquals(1,numberOfRecord); + + Mockito.when(gradStatusService.getStudentListByMinCode(mincode, "accessToken")).thenReturn(List.of()); + numberOfRecord = graduationService.createAndStoreSchoolReports(uniqueList,"REGALG","accessToken"); + assertEquals(0,numberOfRecord); } @Test diff --git a/api/src/test/resources/application.yaml b/api/src/test/resources/application.yaml index 996af522..a5c9cd3c 100644 --- a/api/src/test/resources/application.yaml +++ b/api/src/test/resources/application.yaml @@ -39,9 +39,6 @@ spring: #Logging properties logging: file: - max-history: 1 - clean-history-on-start: true - max-size: 20MB name: /logs/app.log #pattern: # file: %d | [${HOSTNAME}] | %clr(%5p) | [%t] | %logger{36}:%L | %msg%n @@ -60,6 +57,11 @@ logging: boot: autoconfigure: logging: INFO + logback: + rollingpolicy: + max-history: 1 + clean-history-on-start: true + max-file-size: 20MB authorization: user: batch-api