diff --git a/app/build.gradle b/app/build.gradle index 41421a05..b1b2b11c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,7 +30,8 @@ dependencies { annotationProcessor("io.micronaut:micronaut-http-validation") annotationProcessor("io.micronaut.security:micronaut-security-annotations") annotationProcessor("io.micronaut.openapi:micronaut-openapi") - implementation("org.hibernate:hibernate-jpamodelgen-jakarta") + annotationProcessor("org.hibernate:hibernate-jpamodelgen:5.6.15.Final") + compileOnly("org.hibernate:hibernate-jpamodelgen:5.6.15.Final") implementation("io.micronaut:micronaut-http-client") implementation("io.micronaut:micronaut-jackson-databind") implementation("jakarta.annotation:jakarta.annotation-api") @@ -62,14 +63,6 @@ dependencies { } } -sourceSets { - generated { - java { - srcDirs = ["$build/generated/java"] - } - } -} - application { mainClass.set("app.Application") } diff --git a/app/src/main/java/app/model/servicerequest/ServiceRequestRepository.java b/app/src/main/java/app/model/servicerequest/ServiceRequestRepository.java index 1c01018c..95478e03 100644 --- a/app/src/main/java/app/model/servicerequest/ServiceRequestRepository.java +++ b/app/src/main/java/app/model/servicerequest/ServiceRequestRepository.java @@ -14,6 +14,8 @@ package app.model.servicerequest; +import app.model.jurisdiction.Jurisdiction_; +import app.model.service.Service_; import io.micronaut.data.annotation.Repository; import io.micronaut.data.jpa.repository.JpaSpecificationExecutor; import io.micronaut.data.jpa.repository.criteria.Specification; @@ -28,10 +30,14 @@ import java.util.Optional; @Repository -public interface ServiceRequestRepository extends PageableRepository, JpaSpecificationExecutor { +public interface ServiceRequestRepository extends PageableRepository, + JpaSpecificationExecutor { + + Page findByIdInAndJurisdictionId(List serviceRequestIds, String jurisdictionId, + Pageable pageable); - Page findByIdInAndJurisdictionId(List serviceRequestIds, String jurisdictionId, Pageable pageable); List findByIdInAndJurisdictionId(List serviceRequestIds, String jurisdictionId, Sort sort); + Optional findByIdAndJurisdictionId(Long serviceRequestId, String jurisdictionId); @Transactional @@ -39,7 +45,8 @@ default Page findAllBy(String jurisdictionId, List service List status, List priority, Instant startDate, Instant endDate, Pageable pageable) { - Specification specification = getServiceRequestSpecification(jurisdictionId, serviceCodes, status, priority, startDate, endDate); + Specification specification = getServiceRequestSpecification(jurisdictionId, serviceCodes, + status, priority, startDate, endDate); return findAll(specification, pageable); } @@ -49,34 +56,40 @@ default List findAllBy(String jurisdictionId, List service List status, List priority, Instant startDate, Instant endDate, Sort sort) { - Specification specification = getServiceRequestSpecification(jurisdictionId, serviceCodes, status, priority, startDate, endDate); + Specification specification = getServiceRequestSpecification(jurisdictionId, serviceCodes, + status, priority, startDate, endDate); return findAll(specification, sort); } - private static Specification getServiceRequestSpecification(String jurisdictionId, List serviceCodes, List status, List priority, Instant startDate, Instant endDate) { - Specification specification; - specification = (root, query, criteriaBuilder) -> criteriaBuilder.equal(root.get("jurisdiction_id"), jurisdictionId); + private static Specification getServiceRequestSpecification(String jurisdictionId, + List serviceCodes, + List status, + List priority, + Instant startDate, Instant endDate) { + Specification specification = + (root, query, criteriaBuilder) -> criteriaBuilder.equal(root.get(ServiceRequest_.jurisdiction).get(Jurisdiction_.id), jurisdictionId); if (serviceCodes != null && !serviceCodes.isEmpty()) { - specification.and(Specifications.serviceCodeIn(serviceCodes)); + specification = specification.and(Specifications.serviceCodeIn(serviceCodes)); } if (status != null && !status.isEmpty()) { - specification.and(Specifications.statusIn(status)); + specification = specification.and(Specifications.statusIn(status)); } if (priority != null && !priority.isEmpty()) { - specification.and(Specifications.priorityIn(priority)); + specification = specification.and(Specifications.priorityIn(priority)); } if (startDate != null && endDate != null) { - specification.and(Specifications.createdDateBetween(startDate, endDate)); - } else if (startDate != null && endDate == null) { - specification.and(Specifications.createdDateAfter(startDate)); - } else if (startDate == null && endDate != null) { - specification.and(Specifications.createdDateBefore(endDate)); + specification = specification.and(Specifications.createdDateBetween(startDate, endDate)); + } else if (startDate != null) { + specification = specification.and(Specifications.createdDateAfter(startDate)); + } else if (endDate != null) { + specification = specification.and(Specifications.createdDateBefore(endDate)); } + return specification; } @@ -84,36 +97,31 @@ class Specifications { // serviceCode public static Specification serviceCodeIn(List serviceCodes) { - return (root, query, criteriaBuilder) - -> root.get("service_id").in(serviceCodes); + return (root, query, criteriaBuilder) -> root.get(ServiceRequest_.service).get(Service_.id).in(serviceCodes); } // status public static Specification statusIn(List serviceRequestStatuses) { - return (root, query, criteriaBuilder) - -> root.get("service_id").in(serviceRequestStatuses); + return (root, query, criteriaBuilder) -> root.get(ServiceRequest_.status).in(serviceRequestStatuses); } // priority public static Specification priorityIn(List serviceRequestPriorities) { - return (root, query, criteriaBuilder) - -> root.get("service_id").in(serviceRequestPriorities); + return (root, query, criteriaBuilder) -> root.get(ServiceRequest_.priority).in(serviceRequestPriorities); } // dateCreated public static Specification createdDateBetween(Instant startDate, Instant endDate) { - return (root, query, criteriaBuilder) - -> criteriaBuilder.between(root.get(ServiceRequest_.dateCreated), startDate, endDate); + return (root, query, criteriaBuilder) -> criteriaBuilder.between(root.get(ServiceRequest_.dateCreated), + startDate, endDate); } public static Specification createdDateAfter(Instant instant) { - return (root, query, criteriaBuilder) - -> criteriaBuilder.greaterThanOrEqualTo(root.get("date_created"), instant); + return (root, query, criteriaBuilder) -> criteriaBuilder.greaterThanOrEqualTo(root.get(ServiceRequest_.dateCreated), instant); } public static Specification createdDateBefore(Instant instant) { - return (root, query, criteriaBuilder) - -> criteriaBuilder.lessThanOrEqualTo(root.get("date_created"), instant); + return (root, query, criteriaBuilder) -> criteriaBuilder.lessThanOrEqualTo(root.get(ServiceRequest_.dateCreated), instant); } } } diff --git a/app/src/main/java/app/service/servicerequest/ServiceRequestService.java b/app/src/main/java/app/service/servicerequest/ServiceRequestService.java index 280e15e3..6181a5a8 100644 --- a/app/src/main/java/app/service/servicerequest/ServiceRequestService.java +++ b/app/src/main/java/app/service/servicerequest/ServiceRequestService.java @@ -433,12 +433,6 @@ public ServiceRequestDTO getServiceRequest(Long serviceRequestId, String jurisdi .orElse(null); } - public SensitiveServiceRequestDTO getSensitiveServiceRequest(Long serviceRequestId, String jurisdictionId) { - return findServiceRequest(serviceRequestId, jurisdictionId) - .map(ServiceRequestService::convertToSensitiveDTO) - .orElse(null); - } - private Optional findServiceRequest(Long serviceRequestId, String jurisdictionId) { return serviceRequestRepository.findByIdAndJurisdictionId(serviceRequestId, jurisdictionId); }