diff --git a/api/pom.xml b/api/pom.xml
index 970cf2a..1078740 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -11,7 +11,7 @@
ca.bc.gov
educ-grad-business-api
- 1.8.24
+ 1.8.25
educ-grad-business-api
GRAD Business API for external clients
diff --git a/api/src/main/java/ca/bc/gov/educ/api/gradbusiness/controller/GradBusinessController.java b/api/src/main/java/ca/bc/gov/educ/api/gradbusiness/controller/GradBusinessController.java
index 1cb73c6..0be003d 100644
--- a/api/src/main/java/ca/bc/gov/educ/api/gradbusiness/controller/GradBusinessController.java
+++ b/api/src/main/java/ca/bc/gov/educ/api/gradbusiness/controller/GradBusinessController.java
@@ -140,8 +140,8 @@ public ResponseEntity studentCredentialByType(@PathVariable String pen,
@PreAuthorize("hasAuthority('SCOPE_GET_GRADUATION_DATA')")
@Operation(summary = "Get Transcript Report pdf by PEN and optional xml type parameter", description = "Get Transcript Report pdf by PEN and optional xml type parameter", tags = { "Graduation Data" })
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")})
- public ResponseEntity studentTranscriptByType(@PathVariable String pen, @RequestParam(required = false) String type, @RequestHeader(name="Authorization") String accessToken) {
- return gradBusinessService.getStudentTranscriptPDFByType(pen, type, accessToken.replace(BEARER, ""));
+ public ResponseEntity studentTranscriptByType(@PathVariable String pen, @RequestParam(required = false) String type, @RequestParam(required = false) String interim, @RequestHeader(name="Authorization") String accessToken) {
+ return gradBusinessService.getStudentTranscriptPDFByType(pen, type, interim, accessToken.replace(BEARER, ""));
}
@GetMapping(EducGraduationApiConstants.AMALGAMATED_SCHOOL_REPORT_PDF)
diff --git a/api/src/main/java/ca/bc/gov/educ/api/gradbusiness/service/GradBusinessService.java b/api/src/main/java/ca/bc/gov/educ/api/gradbusiness/service/GradBusinessService.java
index a35ed20..b740b69 100644
--- a/api/src/main/java/ca/bc/gov/educ/api/gradbusiness/service/GradBusinessService.java
+++ b/api/src/main/java/ca/bc/gov/educ/api/gradbusiness/service/GradBusinessService.java
@@ -6,7 +6,7 @@
import ca.bc.gov.educ.api.gradbusiness.util.EducGraduationApiConstants;
import io.github.resilience4j.retry.annotation.Retry;
import jakarta.transaction.Transactional;
-import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -286,13 +286,16 @@ public ResponseEntity getStudentCredentialPDFByType(String pen, String t
@Transactional
- public ResponseEntity getStudentTranscriptPDFByType(String pen, String type, String accessToken) {
+ public ResponseEntity getStudentTranscriptPDFByType(String pen, String type, String interim, String accessToken) {
try {
byte[] reportData = prepareReportDataByPen(pen, type, accessToken).getBody();
+ boolean isPreview = (StringUtils.isNotBlank(type) && StringUtils.equalsAnyIgnoreCase(type, "xml", "interim") ||
+ StringUtils.isNotBlank(interim) && StringUtils.equalsAnyIgnoreCase(interim, "xml", "interim"));
StringBuilder reportRequest = new StringBuilder();
String reportOptions = "\"options\": {\n" +
" \"cacheReport\": false,\n" +
" \"convertTo\": \"pdf\",\n" +
+ " \"preview\": \""+ (isPreview ? "true" : "false") +"\",\n" +
" \"overwrite\": false,\n" +
" \"reportName\": \"transcript\",\n" +
" \"reportFile\": \""+pen+" Transcript Report.pdf\"\n" +
diff --git a/api/src/test/java/ca/bc/gov/educ/api/gradbusiness/EducGradBusinessApiApplicationTests.java b/api/src/test/java/ca/bc/gov/educ/api/gradbusiness/EducGradBusinessApiApplicationTests.java
index 7e5c70e..fdaf090 100644
--- a/api/src/test/java/ca/bc/gov/educ/api/gradbusiness/EducGradBusinessApiApplicationTests.java
+++ b/api/src/test/java/ca/bc/gov/educ/api/gradbusiness/EducGradBusinessApiApplicationTests.java
@@ -460,7 +460,7 @@ void testStudentTranscriptPDFByTypeByPen() throws Exception {
when(this.requestHeadersMock.retrieve()).thenReturn(this.responseMock);
when(this.responseMock.bodyToMono(byte[].class)).thenReturn(Mono.just(transcriptPdfSample));
- ResponseEntity transcriptPdf = gradBusinessService.getStudentTranscriptPDFByType(pen, "xml", "accessToken");
+ ResponseEntity transcriptPdf = gradBusinessService.getStudentTranscriptPDFByType(pen, "xml", null,"accessToken");
assertNotNull(transcriptPdf.getBody());
assertEquals(transcriptPdfSample,transcriptPdf.getBody());
}
diff --git a/api/src/test/java/ca/bc/gov/educ/api/gradbusiness/EducGradBusinessApiControllerTests.java b/api/src/test/java/ca/bc/gov/educ/api/gradbusiness/EducGradBusinessApiControllerTests.java
index f5e9375..fbe0ade 100644
--- a/api/src/test/java/ca/bc/gov/educ/api/gradbusiness/EducGradBusinessApiControllerTests.java
+++ b/api/src/test/java/ca/bc/gov/educ/api/gradbusiness/EducGradBusinessApiControllerTests.java
@@ -234,9 +234,9 @@ void testStudentTranscriptPDFByType() throws Exception {
.contentType(MediaType.APPLICATION_XML)
.body(greBPack);
- Mockito.when(gradBusinessService.getStudentTranscriptPDFByType("12312321","xml", "accessToken")).thenReturn(response);
- gradBusinessController.studentTranscriptByType("12312321", "xml","accessToken");
- Mockito.verify(gradBusinessService).getStudentTranscriptPDFByType("12312321","xml", "accessToken");
+ Mockito.when(gradBusinessService.getStudentTranscriptPDFByType("12312321","xml", null,"accessToken")).thenReturn(response);
+ gradBusinessController.studentTranscriptByType("12312321", "xml", null, "accessToken");
+ Mockito.verify(gradBusinessService).getStudentTranscriptPDFByType("12312321","xml", null,"accessToken");
}