From 2ec4652f075fa4bccfd90a2ef95d330879973dd5 Mon Sep 17 00:00:00 2001
From: SoLetsDev <74216496+SoLetsDev@users.noreply.github.com>
Date: Fri, 12 May 2023 15:27:02 -0700
Subject: [PATCH 01/12] First stage of springboot upgrade. Also optimized
imports to remove unused imports.
---
api/pom.xml | 35 +++++------
.../penreg/api/PenRegBatchApiApplication.java | 41 ++++++------
.../CustomRequestBodyAdviceAdapter.java | 5 +-
.../mappers/PenRequestBatchFileDecorator.java | 9 ++-
.../penreg/api/batch/mappers/UUIDMapper.java | 3 +-
.../batch/processor/PenRegBatchProcessor.java | 63 ++++++++++++++-----
.../PenRegBatchStudentRecordsProcessor.java | 13 ++--
.../schedulers/PenRegBatchScheduler.java | 9 ++-
.../service/PSIDuplicateFileCheckService.java | 7 +--
.../service/PenRequestBatchFileService.java | 13 ++--
.../penreg/api/batch/struct/BatchFile.java | 3 +-
.../PenRequestBatchFileValidator.java | 18 +++---
.../penreg/api/config/AsyncConfiguration.java | 5 +-
.../config/RequestResponseInterceptor.java | 7 +--
.../PenRequestBatchStudentStatusCodes.java | 3 +-
.../api/constants/StudentDemogCode.java | 3 +-
.../controller/v1/PaginatedController.java | 5 +-
.../v1/PenRequestBatchAPIController.java | 18 +++---
.../PenRequestBatchHistoryAPIController.java | 14 ++---
.../v1/PenRequestBatchSagaController.java | 25 +++++---
...atchStudentInfoRequestMacroController.java | 15 +++--
.../v1/PenRequestBatchAPIEndpoint.java | 11 ++--
.../v1/PenRequestBatchHistoryAPIEndpoint.java | 6 +-
.../v1/PenRequestBatchSagaEndpoint.java | 14 +++--
...tBatchStudentInfoRequestMacroEndpoint.java | 9 ++-
.../exception/EntityNotFoundException.java | 5 +-
.../api/exception/RestExceptionHandler.java | 18 +++---
.../penreg/api/exception/errors/ApiError.java | 13 ++--
.../educ/penreg/api/filter/Associations.java | 5 +-
.../penreg/api/filter/BaseFilterSpecs.java | 4 +-
.../educ/penreg/api/filter/Converters.java | 5 +-
.../penreg/api/filter/FilterCriteria.java | 5 +-
.../penreg/api/filter/FilterOperation.java | 1 -
.../api/filter/FilterSpecifications.java | 9 ++-
.../api/filter/PenRegBatchFilterSpecs.java | 7 +--
.../filter/PenRegBatchHistoryFilterSpecs.java | 5 +-
.../filter/PenRegBatchStudentFilterSpecs.java | 5 +-
.../penreg/api/filter/SagaFilterSpecs.java | 5 +-
.../PenRegBatchAPICustomHealthCheck.java | 3 +-
.../educ/penreg/api/helpers/LogHelper.java | 13 ++--
.../penreg/api/helpers/PenRegBatchHelper.java | 7 +--
.../educ/penreg/api/mappers/UUIDMapper.java | 3 +-
.../PenRequestBatchReportDataDecorator.java | 16 ++---
.../api/mappers/v1/PenWebBlobMapper.java | 9 ++-
.../mappers/v1/ReportListItemDecorator.java | 9 ++-
.../api/mappers/v1/ReportListItemMapper.java | 3 +-
.../PenRequestBatchResultDataDecorator.java | 6 +-
.../PenRequestBatchResultDataMapper.java | 3 +-
.../api/messaging/MessagePublisher.java | 3 +-
.../api/messaging/MessageSubscriber.java | 11 ++--
.../penreg/api/messaging/NatsConnection.java | 7 +--
.../model/v1/MinistryPRBSourceCodeEntity.java | 11 ++--
.../penreg/api/model/v1/PENWebBlobEntity.java | 5 +-
.../api/model/v1/PenRequestBatchEntity.java | 11 ++--
.../api/model/v1/PenRequestBatchEvent.java | 13 ++--
.../v1/PenRequestBatchEventCodeEntity.java | 9 ++-
.../v1/PenRequestBatchHistoryEntity.java | 7 +--
.../v1/PenRequestBatchStatusCodeEntity.java | 11 ++--
.../v1/PenRequestBatchStudentEntity.java | 11 ++--
...estBatchStudentInfoRequestMacroEntity.java | 13 ++--
...enRequestBatchStudentStatusCodeEntity.java | 11 ++--
...uestBatchStudentValidationIssueEntity.java | 5 +-
.../v1/PenRequestBatchTypeCodeEntity.java | 11 ++--
...atchValidOneLetterGivenNameCodeEntity.java | 9 ++-
.../bc/gov/educ/penreg/api/model/v1/Saga.java | 15 +++--
.../educ/penreg/api/model/v1/SagaEvent.java | 15 +++--
.../api/model/v1/SchoolGroupCodeEntity.java | 11 ++--
.../BaseReturnFilesOrchestrator.java | 42 ++++++++-----
.../BaseUserActionsOrchestrator.java | 6 +-
.../PenReqBatchNewPenOrchestrator.java | 33 ++++++----
.../PenReqBatchStudentOrchestrator.java | 31 +++++----
.../PenReqBatchUserMatchOrchestrator.java | 32 ++++++----
.../PenReqBatchUserUnmatchOrchestrator.java | 31 ++++-----
...uestBatchArchiveAndReturnOrchestrator.java | 38 +++++++----
...RequestBatchRepostReportsOrchestrator.java | 34 +++++++---
.../orchestrator/base/BaseOrchestrator.java | 29 +++++----
.../api/orchestrator/base/EventHandler.java | 1 -
.../api/orchestrator/base/Orchestrator.java | 3 +-
.../api/orchestrator/base/SagaEventState.java | 3 +-
.../api/orchestrator/base/SagaStep.java | 1 -
.../api/properties/ApplicationProperties.java | 5 +-
.../PenRequestBatchEventRepository.java | 9 ++-
.../PenRequestBatchHistoryRepository.java | 5 +-
.../repository/PenRequestBatchRepository.java | 10 +--
.../PenRequestBatchSearchRepositoryImpl.java | 21 +++----
...atchStudentInfoRequestMacroRepository.java | 3 +-
.../PenRequestBatchStudentRepository.java | 7 +--
...enRequestBatchStudentRepositoryCustom.java | 1 -
...questBatchStudentStatusCodeRepository.java | 3 +-
...BatchStudentValidationIssueRepository.java | 5 +-
...ValidOneLetterGivenNameCodeRepository.java | 3 +-
.../api/repository/PenWebBlobRepository.java | 5 +-
.../api/repository/SagaEventRepository.java | 9 ++-
.../penreg/api/repository/SagaRepository.java | 7 +--
.../PenRequestBatchStudentRepositoryImpl.java | 12 ++--
.../educ/penreg/api/rest/RestPageImpl.java | 5 +-
.../gov/educ/penreg/api/rest/RestUtils.java | 35 ++++++-----
.../api/schedulers/EventTaskScheduler.java | 4 +-
.../PurgeOldSagaRecordsScheduler.java | 9 ++-
...PurgeSoftDeletedBatchRecordsScheduler.java | 9 ++-
...tudentPenMatchResultProcessingService.java | 21 ++++---
.../BasePenMatchResultProcessingService.java | 9 ++-
.../api/service/EventHandlerService.java | 15 +++--
.../api/service/EventPublisherService.java | 4 +-
.../EventTaskSchedulerAsyncService.java | 27 ++++----
.../api/service/NotificationService.java | 11 ++--
.../api/service/PenCoordinatorService.java | 3 +-
.../service/PenRequestBatchEventService.java | 15 +++--
.../PenRequestBatchHistoryService.java | 11 ++--
.../api/service/PenRequestBatchService.java | 35 ++++++-----
...stBatchStudentInfoRequestMacroService.java | 11 ++--
...equestBatchStudentOrchestratorService.java | 17 ++---
...ntSFASPenMatchResultProcessingService.java | 3 +-
.../PenRequestBatchStudentService.java | 28 +++++----
...SchoolPenMatchResultProcessingService.java | 3 +-
...estBatchStudentValidationIssueService.java | 9 ++-
...equestPenMatchResultProcessingService.java | 13 ++--
.../educ/penreg/api/service/PenService.java | 4 +-
.../service/ResponseFileGeneratorService.java | 17 +++--
.../educ/penreg/api/service/SagaService.java | 31 ++++-----
.../BasePenRequestBatchStudentSagaData.java | 5 +-
.../bc/gov/educ/penreg/api/struct/Event.java | 3 +-
.../penreg/api/struct/PenMatchRecord.java | 6 +-
.../penreg/api/struct/PenMatchResult.java | 3 +-
.../api/struct/PenRequestBatchStats.java | 3 +-
.../PenRequestBatchStudentSagaData.java | 5 +-
...nRequestBatchStudentValidationPayload.java | 5 +-
.../PenRequestBatchUnmatchSagaData.java | 3 +-
.../PenRequestBatchUserActionsSagaData.java | 9 ++-
.../api/struct/PenRequestValidationIssue.java | 1 -
.../gov/educ/penreg/api/struct/Student.java | 11 ++--
.../educ/penreg/api/struct/StudentTwin.java | 3 +-
.../api/struct/StudentTwinAssociation.java | 5 +-
.../v1/ArchiveAndReturnSagaResponse.java | 3 +-
...asePenRequestBatchReturnFilesSagaData.java | 9 ++-
.../penreg/api/struct/v1/BaseRequest.java | 5 +-
.../educ/penreg/api/struct/v1/GradeCode.java | 5 +-
.../api/struct/v1/PenRequestBatchArchive.java | 7 +--
...questBatchArchiveAndReturnAllSagaData.java | 9 ++-
...equestBatchRepostReportsFilesSagaData.java | 4 +-
.../api/struct/v1/PenRequestBatchStudent.java | 3 +-
...enRequestBatchStudentInfoRequestMacro.java | 5 +-
...PenRequestBatchStudentValidationIssue.java | 6 +-
.../penreg/api/struct/v1/PenRequestIDs.java | 3 +-
.../PenRequestPenMatchProcessingPayload.java | 3 +-
.../gov/educ/penreg/api/struct/v1/Saga.java | 3 +-
.../educ/penreg/api/struct/v1/SagaEvent.java | 3 +-
.../gov/educ/penreg/api/struct/v1/Search.java | 3 +-
.../penreg/api/struct/v1/SearchCriteria.java | 3 +-
.../penreg/api/struct/v1/StudentHistory.java | 3 +-
.../api/struct/v1/external/ListItem.java | 3 +-
.../external/PenRequestBatchSubmission.java | 3 +-
.../PenRequestBatchSubmissionResult.java | 3 +-
.../struct/v1/external/PenRequestResult.java | 3 +-
.../PenRequestBatchReportData.java | 3 +-
.../bc/gov/educ/penreg/api/util/JsonUtil.java | 3 +-
.../penreg/api/util/LocalDateTimeUtil.java | 6 +-
.../gov/educ/penreg/api/util/LocalIDUtil.java | 1 -
...udentInfoRequestMacroPayloadValidator.java | 9 ++-
api/src/main/resources/application.properties | 6 +-
.../processor/PenRegBatchProcessorTest.java | 35 +++++------
.../schedulers/PenRegBatchSchedulerTest.java | 27 ++++----
.../PenRequestBatchFileServiceTest.java | 21 +++----
.../PenRequestBatchFileValidatorTest.java | 15 +++--
.../PenRequestBatchHistoryComparator.java | 1 -
...PenRequestBatchStudentStatusCodesTest.java | 4 +-
.../v1/PenRequestBatchAPIControllerTest.java | 48 ++++++++------
...nRequestBatchHistoryAPIControllerTest.java | 29 +++++----
.../v1/PenRequestBatchSagaControllerTest.java | 36 ++++++-----
...StudentInfoRequestMacroControllerTest.java | 19 +++---
.../PenRegBatchAPICustomHealthCheckTest.java | 13 ++--
.../api/helpers/PenRegBatchHelperTest.java | 4 +-
.../v1/PenRequestBatchFileMapperTest.java | 7 +--
.../PenRequestBatchReportDataMapperTest.java | 9 ++-
.../api/mapper/v1/StudentMapperTest.java | 7 +--
.../orchestrator/BaseOrchestratorTest.java | 1 -
.../PenReqBatchNewPenOrchestratorTest.java | 32 ++++++----
.../PenReqBatchStudentOrchestratorTest.java | 55 ++++++++--------
.../PenReqBatchUserMatchOrchestratorTest.java | 37 ++++++-----
...enReqBatchUserUnmatchOrchestratorTest.java | 49 ++++++++-------
...BatchArchiveAndReturnOrchestratorTest.java | 43 ++++++++-----
...estBatchRepostReportsOrchestratorTest.java | 32 +++++-----
.../educ/penreg/api/rest/RestUtilsTest.java | 28 +++++----
.../PurgeOldSagaRecordsSchedulerTest.java | 10 ++-
...eSoftDeletedBatchRecordsSchedulerTest.java | 9 ++-
.../api/service/EventHandlerServiceTest.java | 40 +++++++-----
.../EventTaskSchedulerAsyncServiceTest.java | 15 +++--
.../api/service/NotificationServiceTest.java | 15 ++---
.../service/PenCoordinatorServiceTest.java | 17 +++--
.../PenRequestBatchEventServiceTest.java | 23 ++++---
.../service/PenRequestBatchServiceTest.java | 30 ++++-----
...stBatchStudentOrchestratorServiceTest.java | 25 +++++---
.../PenRequestBatchStudentServiceTest.java | 22 ++++---
.../ResponseFileGeneratorServiceTest.java | 19 +++---
.../penreg/api/support/NatsMessageImpl.java | 5 +-
.../api/support/PenRequestBatchTestUtils.java | 35 ++++++-----
.../api/support/TestRedisConfiguration.java | 5 +-
197 files changed, 1267 insertions(+), 1174 deletions(-)
diff --git a/api/pom.xml b/api/pom.xml
index 7126854d..3a8ccbea 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -16,14 +16,14 @@
src/main/resources/**,src/main/java/ca/bc/gov/educ/penreg/api/endpoint/**,src/main/java/ca/bc/gov/educ/penreg/api/config/**,
src/main/java/ca/bc/gov/educ/penreg/api/mappers/**,src/main/java/ca/bc/gov/educ/penreg/api/exception/**,src/main/java/ca/bc/gov/educ/penreg/api/model/**,src/main/java/ca/bc/gov/educ/penreg/api/struct/**
- 11
+ 17
- 3.8.0
+ 3.10.1
${java.version}
${java.version}
- 1.4.1.Final
+ 1.5.3.Final
4.20.0
- 1.5.2
+ 1.6.15
2.11.0
21.3.0.0
30.1.1-jre
@@ -32,14 +32,14 @@
0.15
4.0.3
3.1.6
- 3.15.1
+ 3.21.1
2.17.1
org.springframework.boot
spring-boot-starter-parent
- 2.4.3
+ 3.0.2
@@ -120,8 +120,8 @@
commons-lang3
- javax.persistence
- javax.persistence-api
+ jakarta.persistence
+ jakarta.persistence-api
org.springframework.boot
@@ -136,13 +136,8 @@
org.springdoc
- springdoc-openapi-webmvc-core
- ${springdoc.version}
-
-
- org.springdoc
- springdoc-openapi-ui
- ${springdoc.version}
+ springdoc-openapi-starter-webmvc-ui
+ 2.0.4
org.mapstruct
@@ -323,11 +318,6 @@
${java.version}
${java.version}
-
- org.mapstruct
- mapstruct-processor
- ${org.mapstruct.version}
-
org.projectlombok
lombok
@@ -338,6 +328,11 @@
lombok-mapstruct-binding
0.2.0
+
+ org.mapstruct
+ mapstruct-processor
+ ${org.mapstruct.version}
+
org.springframework
spring-context-indexer
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/PenRegBatchApiApplication.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/PenRegBatchApiApplication.java
index ec182749..d4e31221 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/PenRegBatchApiApplication.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/PenRegBatchApiApplication.java
@@ -14,11 +14,11 @@
import org.springframework.retry.annotation.EnableRetry;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
-import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.builders.WebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
+import org.springframework.security.config.annotation.web.configurers.oauth2.server.resource.OAuth2ResourceServerConfigurer;
+import org.springframework.security.config.http.SessionCreationPolicy;
+import org.springframework.security.web.SecurityFilterChain;
import org.springframework.transaction.PlatformTransactionManager;
/**
@@ -27,7 +27,6 @@
* @author OM
*/
@SpringBootApplication
-@EnableGlobalMethodSecurity(prePostEnabled = true)
@EnableCaching
@EnableScheduling
@EnableSchedulerLock(defaultLockAtMostFor = "1s")
@@ -73,7 +72,7 @@ public ThreadPoolTaskScheduler threadPoolTaskScheduler() {
*/
@Configuration
static
- class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
+ class WebSecurityConfiguration {
/**
* Instantiates a new Web security configuration.
@@ -81,25 +80,21 @@ class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
*/
public WebSecurityConfiguration() {
super();
- SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_INHERITABLETHREADLOCAL);
}
- /**
- * Configure paths to be excluded from security.
- *
- * @param web the web
- */
- @Override
- public void configure(final WebSecurity web) {
- web.ignoring()
- .antMatchers("/v3/api-docs/**", "/actuator/health", "/actuator/metrics/**", "/actuator/prometheus", "/swagger-ui/**");
- }
-
- @Override
- protected void configure(final HttpSecurity http) throws Exception {
- http.authorizeRequests()
- .anyRequest().authenticated().and()
- .oauth2ResourceServer().jwt();
+ @Bean
+ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
+ http
+ .csrf(AbstractHttpConfigurer::disable)
+ .authorizeHttpRequests(auth -> auth
+ .requestMatchers("/v3/api-docs/**",
+ "/actuator/health", "/actuator/prometheus", "/actuator/**",
+ "/swagger-ui/**").permitAll()
+ .anyRequest().authenticated()
+ )
+ .sessionManagement(sess -> sess.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
+ .oauth2ResourceServer(OAuth2ResourceServerConfigurer::jwt);
+ return http.build();
}
}
}
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/adapter/CustomRequestBodyAdviceAdapter.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/adapter/CustomRequestBodyAdviceAdapter.java
index 159b2ef4..25576399 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/adapter/CustomRequestBodyAdviceAdapter.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/adapter/CustomRequestBodyAdviceAdapter.java
@@ -1,5 +1,7 @@
package ca.bc.gov.educ.penreg.api.adapter;
+import jakarta.servlet.http.HttpServletRequest;
+import java.lang.reflect.Type;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.MethodParameter;
import org.springframework.http.HttpInputMessage;
@@ -7,9 +9,6 @@
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.RequestBodyAdviceAdapter;
-import javax.servlet.http.HttpServletRequest;
-import java.lang.reflect.Type;
-
@ControllerAdvice
public class CustomRequestBodyAdviceAdapter extends RequestBodyAdviceAdapter {
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/mappers/PenRequestBatchFileDecorator.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/mappers/PenRequestBatchFileDecorator.java
index 963156a2..3dbe9a41 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/mappers/PenRequestBatchFileDecorator.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/mappers/PenRequestBatchFileDecorator.java
@@ -1,5 +1,8 @@
package ca.bc.gov.educ.penreg.api.batch.mappers;
+import static ca.bc.gov.educ.penreg.api.constants.PenRequestBatchStatusCodes.LOADED;
+import static ca.bc.gov.educ.penreg.api.constants.PenRequestBatchTypeCode.SCHOOL;
+
import ca.bc.gov.educ.penreg.api.batch.struct.BatchFile;
import ca.bc.gov.educ.penreg.api.batch.struct.StudentDetails;
import ca.bc.gov.educ.penreg.api.constants.MinistryPRBSourceCodes;
@@ -8,14 +11,10 @@
import ca.bc.gov.educ.penreg.api.model.v1.PENWebBlobEntity;
import ca.bc.gov.educ.penreg.api.model.v1.PenRequestBatchEntity;
import ca.bc.gov.educ.penreg.api.model.v1.PenRequestBatchStudentEntity;
+import java.time.LocalDateTime;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
-import java.time.LocalDateTime;
-
-import static ca.bc.gov.educ.penreg.api.constants.PenRequestBatchStatusCodes.LOADED;
-import static ca.bc.gov.educ.penreg.api.constants.PenRequestBatchTypeCode.SCHOOL;
-
/**
* The type Pen request batch file decorator.
*/
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/mappers/UUIDMapper.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/mappers/UUIDMapper.java
index bb9952e8..eb810ffa 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/mappers/UUIDMapper.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/mappers/UUIDMapper.java
@@ -1,8 +1,7 @@
package ca.bc.gov.educ.penreg.api.batch.mappers;
-import org.apache.commons.lang3.StringUtils;
-
import java.util.UUID;
+import org.apache.commons.lang3.StringUtils;
/**
* The type Uuid mapper.
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/processor/PenRegBatchProcessor.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/processor/PenRegBatchProcessor.java
index e0b970a6..e1d99001 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/processor/PenRegBatchProcessor.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/processor/PenRegBatchProcessor.java
@@ -1,5 +1,36 @@
package ca.bc.gov.educ.penreg.api.batch.processor;
+import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.DUPLICATE_BATCH_FILE_PSI;
+import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.HELD_BACK_FOR_SFAS;
+import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.HELD_BACK_FOR_SIZE;
+import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.INVALID_MINCODE_HEADER;
+import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.INVALID_MINCODE_SCHOOL_CLOSED;
+import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.INVALID_TRAILER;
+import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.INVALID_TRAILER_STUDENT_COUNT;
+import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.INVALID_TRANSACTION_CODE_STUDENT_DETAILS;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.BIRTH_DATE;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.ENROLLED_GRADE_CODE;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.GENDER;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.HEADER;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.LEGAL_GIVEN_NAME;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.LEGAL_MIDDLE_NAME;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.LEGAL_SURNAME;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.LOCAL_STUDENT_ID;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.PEN;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.POSTAL_CODE;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.PRODUCT_ID;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.PRODUCT_NAME;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.STUDENT_COUNT;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.TRAILER;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.TRANSACTION_CODE;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.UNUSED;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.UNUSED_SECOND;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.USUAL_GIVEN_NAME;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.USUAL_MIDDLE_NAME;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.USUAL_SURNAME;
+import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.VENDOR_NAME;
+import static lombok.AccessLevel.PRIVATE;
+
import ca.bc.gov.educ.penreg.api.batch.exception.FileError;
import ca.bc.gov.educ.penreg.api.batch.exception.FileUnProcessableException;
import ca.bc.gov.educ.penreg.api.batch.mappers.PenRequestBatchFileMapper;
@@ -21,6 +52,23 @@
import ca.bc.gov.educ.penreg.api.service.PenCoordinatorService;
import ca.bc.gov.educ.penreg.api.struct.School;
import com.google.common.base.Stopwatch;
+import java.io.ByteArrayInputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.nio.charset.Charset;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+import java.util.function.Function;
+import java.util.stream.Collectors;
import lombok.Getter;
import lombok.NonNull;
import lombok.extern.slf4j.Slf4j;
@@ -34,21 +82,6 @@
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
-import java.io.*;
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.util.*;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.*;
-import static ca.bc.gov.educ.penreg.api.constants.BatchFileConstants.*;
-import static lombok.AccessLevel.PRIVATE;
-
/**
* The Pen reg batch processor.
*
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/processor/PenRegBatchStudentRecordsProcessor.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/processor/PenRegBatchStudentRecordsProcessor.java
index a300cbcb..dbabd046 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/processor/PenRegBatchStudentRecordsProcessor.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/processor/PenRegBatchStudentRecordsProcessor.java
@@ -1,5 +1,8 @@
package ca.bc.gov.educ.penreg.api.batch.processor;
+import static ca.bc.gov.educ.penreg.api.constants.SagaTopicsEnum.PEN_REQUEST_BATCH_API_TOPIC;
+import static lombok.AccessLevel.PRIVATE;
+
import ca.bc.gov.educ.penreg.api.batch.service.PenRequestBatchFileService;
import ca.bc.gov.educ.penreg.api.constants.EventOutcome;
import ca.bc.gov.educ.penreg.api.constants.EventType;
@@ -8,6 +11,9 @@
import ca.bc.gov.educ.penreg.api.struct.Event;
import ca.bc.gov.educ.penreg.api.struct.PenRequestBatchStudentSagaData;
import ca.bc.gov.educ.penreg.api.util.JsonUtil;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
@@ -17,13 +23,6 @@
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-
-import static ca.bc.gov.educ.penreg.api.constants.SagaTopicsEnum.PEN_REQUEST_BATCH_API_TOPIC;
-import static lombok.AccessLevel.PRIVATE;
-
/**
* The type Pen reg batch student records processor.
*/
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/schedulers/PenRegBatchScheduler.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/schedulers/PenRegBatchScheduler.java
index 8912c851..6f098c83 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/schedulers/PenRegBatchScheduler.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/schedulers/PenRegBatchScheduler.java
@@ -1,8 +1,12 @@
package ca.bc.gov.educ.penreg.api.batch.schedulers;
+import static lombok.AccessLevel.PRIVATE;
+
import ca.bc.gov.educ.penreg.api.batch.processor.PenRegBatchProcessor;
import ca.bc.gov.educ.penreg.api.batch.service.PenRequestBatchFileService;
import ca.bc.gov.educ.penreg.api.model.v1.PENWebBlobEntity;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
@@ -15,11 +19,6 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
-import static lombok.AccessLevel.PRIVATE;
-
/**
* The type Pen reg batch scheduler.
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/service/PSIDuplicateFileCheckService.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/service/PSIDuplicateFileCheckService.java
index db2d0a0b..2d065aa5 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/service/PSIDuplicateFileCheckService.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/service/PSIDuplicateFileCheckService.java
@@ -4,13 +4,12 @@
import ca.bc.gov.educ.penreg.api.model.v1.PENWebBlobEntity;
import ca.bc.gov.educ.penreg.api.repository.PenWebBlobRepository;
import com.google.common.base.Stopwatch;
-import lombok.extern.slf4j.Slf4j;
-import lombok.val;
-import org.springframework.stereotype.Service;
-
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
+import lombok.extern.slf4j.Slf4j;
+import lombok.val;
+import org.springframework.stereotype.Service;
/**
* this class is responsible to mark the file duplicate based on below.
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/service/PenRequestBatchFileService.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/service/PenRequestBatchFileService.java
index f8da8636..877518cf 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/service/PenRequestBatchFileService.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/service/PenRequestBatchFileService.java
@@ -1,5 +1,8 @@
package ca.bc.gov.educ.penreg.api.batch.service;
+import static ca.bc.gov.educ.penreg.api.constants.PenRequestBatchProcessTypeCodes.FLAT_FILE;
+import static lombok.AccessLevel.PRIVATE;
+
import ca.bc.gov.educ.penreg.api.constants.PenRequestBatchStatusCodes;
import ca.bc.gov.educ.penreg.api.constants.PenRequestBatchStudentStatusCodes;
import ca.bc.gov.educ.penreg.api.model.v1.PENWebBlobEntity;
@@ -9,6 +12,9 @@
import ca.bc.gov.educ.penreg.api.service.PenRequestBatchService;
import ca.bc.gov.educ.penreg.api.service.PenRequestBatchStudentService;
import com.google.common.base.Stopwatch;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
import lombok.Getter;
import lombok.NonNull;
import lombok.extern.slf4j.Slf4j;
@@ -20,13 +26,6 @@
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
-import java.time.LocalDateTime;
-import java.util.*;
-import java.util.concurrent.TimeUnit;
-
-import static ca.bc.gov.educ.penreg.api.constants.PenRequestBatchProcessTypeCodes.FLAT_FILE;
-import static lombok.AccessLevel.PRIVATE;
-
/**
* The type Pen request batch file service.
*
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/struct/BatchFile.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/struct/BatchFile.java
index fccdf8e4..2f5d09da 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/struct/BatchFile.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/struct/BatchFile.java
@@ -1,9 +1,8 @@
package ca.bc.gov.educ.penreg.api.batch.struct;
-import lombok.Data;
-
import java.util.ArrayList;
import java.util.List;
+import lombok.Data;
/**
* The type Batch file.
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/validator/PenRequestBatchFileValidator.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/validator/PenRequestBatchFileValidator.java
index b6e0a048..32035a84 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/validator/PenRequestBatchFileValidator.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/batch/validator/PenRequestBatchFileValidator.java
@@ -1,5 +1,12 @@
package ca.bc.gov.educ.penreg.api.batch.validator;
+import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.HELD_BACK_FOR_SFAS;
+import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.HELD_BACK_FOR_SIZE;
+import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.INVALID_MINCODE_HEADER;
+import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.INVALID_MINCODE_SCHOOL_CLOSED;
+import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.INVALID_ROW_LENGTH;
+import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.STUDENT_COUNT_MISMATCH;
+
import ca.bc.gov.educ.penreg.api.batch.exception.FileError;
import ca.bc.gov.educ.penreg.api.batch.exception.FileUnProcessableException;
import ca.bc.gov.educ.penreg.api.batch.struct.BatchFile;
@@ -7,6 +14,10 @@
import ca.bc.gov.educ.penreg.api.properties.ApplicationProperties;
import ca.bc.gov.educ.penreg.api.rest.RestUtils;
import ca.bc.gov.educ.penreg.api.struct.School;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeParseException;
+import java.util.Optional;
import lombok.extern.slf4j.Slf4j;
import net.sf.flatpack.DataError;
import net.sf.flatpack.DataSet;
@@ -15,13 +26,6 @@
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.time.format.DateTimeParseException;
-import java.util.Optional;
-
-import static ca.bc.gov.educ.penreg.api.batch.exception.FileError.*;
-
/**
* this class is responsible to validate the batch file that was uploaded.
*/
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/config/AsyncConfiguration.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/config/AsyncConfiguration.java
index d3bdfffd..667d1a55 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/config/AsyncConfiguration.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/config/AsyncConfiguration.java
@@ -2,6 +2,8 @@
import ca.bc.gov.educ.penreg.api.properties.ApplicationProperties;
import ca.bc.gov.educ.penreg.api.util.ThreadFactoryBuilder;
+import java.time.Duration;
+import java.util.concurrent.Executor;
import org.jboss.threads.EnhancedQueueExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
@@ -9,9 +11,6 @@
import org.springframework.context.annotation.Profile;
import org.springframework.scheduling.annotation.EnableAsync;
-import java.time.Duration;
-import java.util.concurrent.Executor;
-
@Configuration
@EnableAsync
@Profile("!test")
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/config/RequestResponseInterceptor.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/config/RequestResponseInterceptor.java
index ac645bad..3c6e1c2e 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/config/RequestResponseInterceptor.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/config/RequestResponseInterceptor.java
@@ -2,16 +2,15 @@
import ca.bc.gov.educ.penreg.api.helpers.LogHelper;
import ca.bc.gov.educ.penreg.api.properties.ApplicationProperties;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import java.time.Instant;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.AsyncHandlerInterceptor;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.time.Instant;
-
@Component
@Slf4j
public class RequestResponseInterceptor implements AsyncHandlerInterceptor {
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/constants/PenRequestBatchStudentStatusCodes.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/constants/PenRequestBatchStudentStatusCodes.java
index 309f790b..a86739d2 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/constants/PenRequestBatchStudentStatusCodes.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/constants/PenRequestBatchStudentStatusCodes.java
@@ -1,9 +1,8 @@
package ca.bc.gov.educ.penreg.api.constants;
-import lombok.Getter;
-
import java.util.HashMap;
import java.util.Map;
+import lombok.Getter;
/**
* The enum Pen request batch student status codes.
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/constants/StudentDemogCode.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/constants/StudentDemogCode.java
index f8f5f8a5..fd731355 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/constants/StudentDemogCode.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/constants/StudentDemogCode.java
@@ -1,9 +1,8 @@
package ca.bc.gov.educ.penreg.api.constants;
-import lombok.Getter;
-
import java.util.HashMap;
import java.util.Map;
+import lombok.Getter;
@Getter
public enum StudentDemogCode {
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PaginatedController.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PaginatedController.java
index 7eed6c8e..0e4c290c 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PaginatedController.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PaginatedController.java
@@ -11,13 +11,12 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
+import java.util.List;
+import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
-import java.util.List;
-import java.util.Map;
-
public class PaginatedController {
/**
* Gets sort criteria.
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchAPIController.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchAPIController.java
index 11e71864..5974c55b 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchAPIController.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchAPIController.java
@@ -1,5 +1,8 @@
package ca.bc.gov.educ.penreg.api.controller.v1;
+import static lombok.AccessLevel.PRIVATE;
+import static org.springframework.http.HttpStatus.BAD_REQUEST;
+
import ca.bc.gov.educ.penreg.api.constants.PenRequestBatchProcessTypeCodes;
import ca.bc.gov.educ.penreg.api.constants.PenRequestBatchStatusCodes;
import ca.bc.gov.educ.penreg.api.constants.PenRequestBatchStudentStatusCodes;
@@ -36,6 +39,13 @@
import ca.bc.gov.educ.penreg.api.util.JsonUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.stream.Collectors;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
@@ -49,14 +59,6 @@
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RestController;
-import java.time.LocalDateTime;
-import java.util.*;
-import java.util.concurrent.CompletableFuture;
-import java.util.stream.Collectors;
-
-import static lombok.AccessLevel.PRIVATE;
-import static org.springframework.http.HttpStatus.BAD_REQUEST;
-
/**
* Student controller
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchHistoryAPIController.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchHistoryAPIController.java
index d3bea05e..3b671aa1 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchHistoryAPIController.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchHistoryAPIController.java
@@ -1,5 +1,7 @@
package ca.bc.gov.educ.penreg.api.controller.v1;
+import static lombok.AccessLevel.PRIVATE;
+
import ca.bc.gov.educ.penreg.api.endpoint.v1.PenRequestBatchHistoryAPIEndpoint;
import ca.bc.gov.educ.penreg.api.exception.InvalidParameterException;
import ca.bc.gov.educ.penreg.api.filter.Associations;
@@ -7,10 +9,14 @@
import ca.bc.gov.educ.penreg.api.mappers.v1.PenRequestBatchHistoryMapper;
import ca.bc.gov.educ.penreg.api.model.v1.PenRequestBatchHistoryEntity;
import ca.bc.gov.educ.penreg.api.service.PenRequestBatchHistoryService;
-import ca.bc.gov.educ.penreg.api.struct.v1.*;
+import ca.bc.gov.educ.penreg.api.struct.v1.PenRequestBatchHistorySearch;
+import ca.bc.gov.educ.penreg.api.struct.v1.Search;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -20,12 +26,6 @@
import org.springframework.data.jpa.domain.Specification;
import org.springframework.web.bind.annotation.RestController;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.CompletableFuture;
-
-import static lombok.AccessLevel.PRIVATE;
-
/**
* Student controller
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchSagaController.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchSagaController.java
index 12153224..69e14c65 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchSagaController.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchSagaController.java
@@ -1,5 +1,13 @@
package ca.bc.gov.educ.penreg.api.controller.v1;
+import static ca.bc.gov.educ.penreg.api.constants.SagaEnum.PEN_REQUEST_BATCH_ARCHIVE_AND_RETURN_SAGA;
+import static ca.bc.gov.educ.penreg.api.constants.SagaEnum.PEN_REQUEST_BATCH_NEW_PEN_PROCESSING_SAGA;
+import static ca.bc.gov.educ.penreg.api.constants.SagaEnum.PEN_REQUEST_BATCH_REPOST_REPORTS_SAGA;
+import static ca.bc.gov.educ.penreg.api.constants.SagaEnum.PEN_REQUEST_BATCH_USER_MATCH_PROCESSING_SAGA;
+import static ca.bc.gov.educ.penreg.api.constants.SagaEnum.PEN_REQUEST_BATCH_USER_UNMATCH_PROCESSING_SAGA;
+import static lombok.AccessLevel.PRIVATE;
+import static org.springframework.http.HttpStatus.BAD_REQUEST;
+
import ca.bc.gov.educ.penreg.api.constants.SagaEnum;
import ca.bc.gov.educ.penreg.api.constants.SagaStatusEnum;
import ca.bc.gov.educ.penreg.api.endpoint.v1.PenRequestBatchSagaEndpoint;
@@ -20,6 +28,14 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+import java.util.stream.Collectors;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
@@ -34,15 +50,6 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RestController;
-import java.time.LocalDateTime;
-import java.util.*;
-import java.util.concurrent.CompletableFuture;
-import java.util.stream.Collectors;
-
-import static ca.bc.gov.educ.penreg.api.constants.SagaEnum.*;
-import static lombok.AccessLevel.PRIVATE;
-import static org.springframework.http.HttpStatus.BAD_REQUEST;
-
@RestController
@Slf4j
public class PenRequestBatchSagaController extends PaginatedController implements PenRequestBatchSagaEndpoint {
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchStudentInfoRequestMacroController.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchStudentInfoRequestMacroController.java
index 96e24d84..5ce41cc2 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchStudentInfoRequestMacroController.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/controller/v1/PenRequestBatchStudentInfoRequestMacroController.java
@@ -1,5 +1,8 @@
package ca.bc.gov.educ.penreg.api.controller.v1;
+import static lombok.AccessLevel.PRIVATE;
+import static org.springframework.http.HttpStatus.BAD_REQUEST;
+
import ca.bc.gov.educ.penreg.api.endpoint.v1.PenRequestBatchStudentInfoRequestMacroEndpoint;
import ca.bc.gov.educ.penreg.api.exception.EntityNotFoundException;
import ca.bc.gov.educ.penreg.api.exception.InvalidPayloadException;
@@ -9,20 +12,16 @@
import ca.bc.gov.educ.penreg.api.service.PenRequestBatchStudentInfoRequestMacroService;
import ca.bc.gov.educ.penreg.api.struct.v1.PenRequestBatchStudentInfoRequestMacro;
import ca.bc.gov.educ.penreg.api.validator.PenRequestBatchStudentInfoRequestMacroPayloadValidator;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.UUID;
+import java.util.stream.Collectors;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import lombok.val;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.UUID;
-import java.util.stream.Collectors;
-
-import static lombok.AccessLevel.PRIVATE;
-import static org.springframework.http.HttpStatus.BAD_REQUEST;
-
@RestController
@Slf4j
public class PenRequestBatchStudentInfoRequestMacroController implements PenRequestBatchStudentInfoRequestMacroEndpoint {
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchAPIEndpoint.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchAPIEndpoint.java
index 266431bb..ac8fbfda 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchAPIEndpoint.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchAPIEndpoint.java
@@ -1,5 +1,7 @@
package ca.bc.gov.educ.penreg.api.endpoint.v1;
+import static org.springframework.http.HttpStatus.CREATED;
+
import ca.bc.gov.educ.penreg.api.struct.PenRequestBatchStats;
import ca.bc.gov.educ.penreg.api.struct.v1.*;
import ca.bc.gov.educ.penreg.api.struct.v1.external.PenRequest;
@@ -15,6 +17,9 @@
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
+import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -23,12 +28,6 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-import java.util.List;
-import java.util.UUID;
-import java.util.concurrent.CompletableFuture;
-
-import static org.springframework.http.HttpStatus.CREATED;
-
/**
* The interface Pen reg api endpoint.
*/
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchHistoryAPIEndpoint.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchHistoryAPIEndpoint.java
index a09639d3..32f9766b 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchHistoryAPIEndpoint.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchHistoryAPIEndpoint.java
@@ -3,14 +3,12 @@
import ca.bc.gov.educ.penreg.api.struct.v1.PenRequestBatch;
import ca.bc.gov.educ.penreg.api.struct.v1.PenRequestBatchHistorySearch;
import ca.bc.gov.educ.penreg.api.struct.v1.Search;
-import io.swagger.v3.oas.annotations.OpenAPIDefinition;
-import io.swagger.v3.oas.annotations.info.Info;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
-import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
+import java.util.concurrent.CompletableFuture;
import org.springframework.data.domain.Page;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
@@ -18,8 +16,6 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
-import java.util.concurrent.CompletableFuture;
-
/**
* The interface Pen reg api endpoint.
*/
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchSagaEndpoint.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchSagaEndpoint.java
index 9df8ba78..f843fc15 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchSagaEndpoint.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchSagaEndpoint.java
@@ -1,14 +1,20 @@
package ca.bc.gov.educ.penreg.api.endpoint.v1;
-import ca.bc.gov.educ.penreg.api.struct.v1.SagaEvent;
import ca.bc.gov.educ.penreg.api.struct.PenRequestBatchUnmatchSagaData;
import ca.bc.gov.educ.penreg.api.struct.PenRequestBatchUserActionsSagaData;
-import ca.bc.gov.educ.penreg.api.struct.v1.*;
+import ca.bc.gov.educ.penreg.api.struct.v1.ArchiveAndReturnSagaResponse;
+import ca.bc.gov.educ.penreg.api.struct.v1.PenRequestBatchArchiveAndReturnAllSagaData;
+import ca.bc.gov.educ.penreg.api.struct.v1.PenRequestBatchRepostReportsFilesSagaData;
+import ca.bc.gov.educ.penreg.api.struct.v1.Saga;
+import ca.bc.gov.educ.penreg.api.struct.v1.SagaEvent;
import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
+import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -16,10 +22,6 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-import java.util.List;
-import java.util.UUID;
-import java.util.concurrent.CompletableFuture;
-
@RequestMapping("/api/v1/pen-request-batch-saga")
public interface PenRequestBatchSagaEndpoint {
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchStudentInfoRequestMacroEndpoint.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchStudentInfoRequestMacroEndpoint.java
index 066fa8c4..9473075c 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchStudentInfoRequestMacroEndpoint.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/endpoint/v1/PenRequestBatchStudentInfoRequestMacroEndpoint.java
@@ -1,17 +1,16 @@
package ca.bc.gov.educ.penreg.api.endpoint.v1;
+import static org.springframework.http.HttpStatus.CREATED;
+
import ca.bc.gov.educ.penreg.api.struct.v1.PenRequestBatchStudentInfoRequestMacro;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import java.util.List;
+import java.util.UUID;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-import java.util.List;
-import java.util.UUID;
-
-import static org.springframework.http.HttpStatus.CREATED;
-
@RequestMapping("/api/v1/pen-request-batch-macro")
public interface PenRequestBatchStudentInfoRequestMacroEndpoint {
@GetMapping
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/exception/EntityNotFoundException.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/exception/EntityNotFoundException.java
index d900bfe3..abb148a6 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/exception/EntityNotFoundException.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/exception/EntityNotFoundException.java
@@ -1,11 +1,10 @@
package ca.bc.gov.educ.penreg.api.exception;
-import lombok.NoArgsConstructor;
-import org.apache.commons.lang3.StringUtils;
-
import java.util.HashMap;
import java.util.Map;
import java.util.stream.IntStream;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
/**
* EntityNotFoundException to provide more details in error description
diff --git a/api/src/main/java/ca/bc/gov/educ/penreg/api/exception/RestExceptionHandler.java b/api/src/main/java/ca/bc/gov/educ/penreg/api/exception/RestExceptionHandler.java
index 073391ca..f6a6aa08 100644
--- a/api/src/main/java/ca/bc/gov/educ/penreg/api/exception/RestExceptionHandler.java
+++ b/api/src/main/java/ca/bc/gov/educ/penreg/api/exception/RestExceptionHandler.java
@@ -1,12 +1,15 @@
package ca.bc.gov.educ.penreg.api.exception;
+import static org.springframework.http.HttpStatus.BAD_REQUEST;
+import static org.springframework.http.HttpStatus.NOT_FOUND;
+
import ca.bc.gov.educ.penreg.api.exception.errors.ApiError;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
+import org.springframework.http.HttpStatusCode;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.web.bind.MethodArgumentNotValidException;
@@ -15,9 +18,6 @@
import org.springframework.web.context.request.WebRequest;
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
-import static org.springframework.http.HttpStatus.BAD_REQUEST;
-import static org.springframework.http.HttpStatus.NOT_FOUND;
-
/**
* The type Rest exception handler.
*/
@@ -40,7 +40,7 @@ public class RestExceptionHandler extends ResponseEntityExceptionHandler {
* @return the response entity
*/
@Override
- protected ResponseEntity