Skip to content
This repository was archived by the owner on Aug 13, 2020. It is now read-only.

Commit 354624f

Browse files
Revert "CRC-5397 - Call the new Alfresco API to Provide document as PDF - Review comments incorporated"
This reverts commit 08c18eb.
1 parent 08c18eb commit 354624f

File tree

3 files changed

+58
-32
lines changed

3 files changed

+58
-32
lines changed

file/file-alfresco/src/main/java/uk/gov/justice/services/file/alfresco/requester/AlfrescoFileRequester.java

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class AlfrescoFileRequester implements FileRequester {
2929
String alfrescoWorkspacePath;
3030

3131
@Inject
32-
@GlobalValue(key = "alfrescoPdfContentWorkspacePath", defaultValue = "/service/api/requestpdf/workspace/SpacesStore/")
32+
@GlobalValue(key = "alfrescoPdfContentWorkspacePath", defaultValue = "/service/api/node/workspace/SpacesStore/")
3333
String alfrescoPdfContentWorkspacePath;
3434

3535
@Inject
@@ -42,7 +42,7 @@ public class AlfrescoFileRequester implements FileRequester {
4242
@Override
4343
public Optional<InputStream> request(final String fileId, final String fileMimeType, final String fileName) {
4444
try {
45-
return ofNullable(restClient.getAsInputStream(alfrescoUriOf(fileId, fileName),
45+
return ofNullable(restClient.getAsInputStream(alfrescoUriOf(fileId, fileName, false),
4646
valueOf(fileMimeType), headersWithUserId(alfrescoReadUser)));
4747
} catch (final NotFoundException nfe) {
4848
return empty();
@@ -53,11 +53,10 @@ public Optional<InputStream> request(final String fileId, final String fileMimeT
5353
}
5454

5555
@Override
56-
public Optional<InputStream> requestPdf(final String fileId, final String fileName) {
57-
final String mimeType = "application/pdf";
56+
public Optional<InputStream> request(final String fileId, final String fileMimeType, final String fileName, final boolean transformPdf) {
5857
try {
59-
return ofNullable(restClient.getAsInputStream(alfrescoPdfUriOf(fileId, fileName),
60-
valueOf(mimeType), headersWithUserId(alfrescoReadUser)));
58+
return ofNullable(restClient.getAsInputStream(alfrescoUriOf(fileId, fileName, transformPdf),
59+
valueOf(fileMimeType), headersWithUserId(alfrescoReadUser)));
6160
} catch (final NotFoundException nfe) {
6261
return empty();
6362
} catch (final ProcessingException | InternalServerErrorException ex) {
@@ -66,13 +65,11 @@ public Optional<InputStream> requestPdf(final String fileId, final String fileNa
6665
}
6766
}
6867

69-
private String alfrescoUriOf(final String fileId, final String fileName) {
68+
private String alfrescoUriOf(final String fileId, final String fileName, final boolean transformPdf) {
69+
if(transformPdf) {
70+
return format("%s%s?transformpdf=%s", alfrescoPdfContentWorkspacePath, fileId, transformPdf);
71+
}
7072
return format("%s%s/content/%s", alfrescoWorkspacePath, fileId, fileName);
7173
}
7274

73-
private String alfrescoPdfUriOf(final String fileId, final String fileName) {
74-
return format("%s%s/%s", alfrescoPdfContentWorkspacePath, fileId, fileName);
75-
76-
}
77-
7875
}

file/file-alfresco/src/test/java/uk/gov/justice/services/file/alfresco/requester/AlfrescoFileRequesterIT.java

Lines changed: 43 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,17 @@
1010
import static com.github.tomakehurst.wiremock.client.WireMock.verify;
1111
import static java.lang.String.format;
1212
import static java.util.UUID.randomUUID;
13+
14+
import org.hamcrest.CoreMatchers;
15+
import org.jboss.resteasy.specimpl.MultivaluedMapImpl;
16+
17+
import static javax.ws.rs.core.HttpHeaders.CONTENT_TYPE;
1318
import static javax.ws.rs.core.MediaType.TEXT_PLAIN;
19+
import static javax.ws.rs.core.Response.Status.OK;
1420
import static org.apache.openejb.util.NetworkUtil.getNextAvailablePort;
1521
import static org.hamcrest.MatcherAssert.assertThat;
1622
import static org.hamcrest.core.Is.is;
17-
import static org.junit.Assert.assertTrue;
18-
import static org.junit.Assert.assertFalse;
19-
import static org.junit.Assert.fail;
20-
import static org.junit.Assert.assertEquals;
23+
import static org.junit.Assert.*;
2124
import static uk.gov.justice.services.test.utils.common.reflection.ReflectionUtils.setField;
2225

2326
import uk.gov.justice.services.file.alfresco.common.AlfrescoRestClient;
@@ -29,6 +32,7 @@
2932
import java.util.Optional;
3033

3134
import javax.ws.rs.ProcessingException;
35+
import javax.ws.rs.core.Response;
3236
import javax.ws.rs.core.MultivaluedMap;
3337

3438
import com.github.tomakehurst.wiremock.junit.WireMockRule;
@@ -44,7 +48,7 @@ public class AlfrescoFileRequesterIT {
4448
private static final String UNUSED_MIME_TYPE = "text/plain";
4549
private static final String UNUSED_FILE_NAME = "file.txt";
4650
private static final String ALFRESCO_WORKSPACE_PATH = "/service/api/node/content/workspace/SpacesStore/";
47-
private static final String ALFRESCO_WORKSPACE_PDF_TRANSFORMATION_PATH = "/service/api/requestpdf/workspace/SpacesStore/";
51+
private static final String ALFRESCO_WORKSPACE_TRANSFORMATION_PATH = "service/api/node/workspace/SpacesStore/";
4852

4953

5054
private static int PORT = getNextAvailablePort();
@@ -53,7 +57,7 @@ public class AlfrescoFileRequesterIT {
5357

5458
private RestClient restClient;
5559

56-
private MultivaluedMap<String, Object> headers;
60+
private MultivaluedMap<String,Object> headers;
5761

5862
@Rule
5963
public WireMockRule wireMock = new WireMockRule(PORT);
@@ -98,18 +102,44 @@ public void shouldReturnPdfContentFromAlfresco() throws IOException {
98102
final String fileId = randomUUID().toString();
99103
final String mimeType = "application/pdf";
100104
final String fileName = "file123.txt";
101-
final String fileContent = "abcd";
102105

103-
stubFor(get(urlMatching(format("/alfresco%s%s/%s", ALFRESCO_WORKSPACE_PDF_TRANSFORMATION_PATH, fileId, fileName)))
104-
.withHeader("cppuid", equalTo("user1234"))
105-
.willReturn(aResponse().withHeader("Content-Type", mimeType).withBody(fileContent)));
106+
restClient = new RestClient();
107+
108+
headers = new MultivaluedMapImpl<>();
109+
headers.add("cppuid", "user1234");
106110

107-
final Optional<InputStream> inputStream = fileRequester.requestPdf(fileId, fileName);
111+
final Response readMaterialResponseAsPdf = restClient.query(format(basePathWithPort(PORT) + "/%s%s?transformpdf=true", ALFRESCO_WORKSPACE_TRANSFORMATION_PATH, fileId), "*/*", headers);
112+
113+
assertThat(readMaterialResponseAsPdf.getStatus(), is(OK.getStatusCode()));
114+
assertThat(readMaterialResponseAsPdf.getHeaderString(CONTENT_TYPE), CoreMatchers.equalTo("application/pdf;charset=UTF-8"));
115+
116+
final Optional<InputStream> inputStream = fileRequester.request(fileId, mimeType, fileName, true);
108117
assertTrue(inputStream.isPresent());
109118

110-
assertThat(IOUtils.toString(inputStream.get()), is(fileContent));
119+
assertEquals(IOUtils.toString(inputStream.get()).length(), readMaterialResponseAsPdf.readEntity(String.class).length());
111120
}
112121

122+
@Test
123+
public void shouldReturnOriginalContentFromAlfresco() throws IOException {
124+
final String fileId = randomUUID().toString();
125+
final String mimeType = "text/plain";
126+
final String fileName = "file123.txt";
127+
128+
restClient = new RestClient();
129+
130+
headers = new MultivaluedMapImpl<>();
131+
headers.add("cppuid", "user1234");
132+
133+
final Response readMaterialResponseAsPdf = restClient.query(format(basePathWithPort(PORT) + "/%s%s?transformpdf=false", ALFRESCO_WORKSPACE_TRANSFORMATION_PATH, fileId), "*/*", headers);
134+
135+
assertThat(readMaterialResponseAsPdf.getStatus(), is(OK.getStatusCode()));
136+
assertThat(readMaterialResponseAsPdf.getHeaderString(CONTENT_TYPE), CoreMatchers.equalTo("text/plain;charset=UTF-8"));
137+
138+
final Optional<InputStream> inputStream = fileRequester.request(fileId, mimeType, fileName, false);
139+
assertTrue(inputStream.isPresent());
140+
141+
assertEquals(IOUtils.toString(inputStream.get()).length(), readMaterialResponseAsPdf.readEntity(String.class).length());
142+
}
113143

114144
@Test
115145
public void shouldReturnOptionalEmptyFromAlfrescoIfFileIsNotFound() {
@@ -154,7 +184,7 @@ public void shouldThrowAnExceptionIfAlfrescoServiceIsUnavailable() {
154184
private static AlfrescoFileRequester alfrescoFileRequesterWith(final String basePath) {
155185
AlfrescoFileRequester fileRequester = new AlfrescoFileRequester();
156186
fileRequester.alfrescoWorkspacePath = ALFRESCO_WORKSPACE_PATH;
157-
fileRequester.alfrescoPdfContentWorkspacePath = ALFRESCO_WORKSPACE_PDF_TRANSFORMATION_PATH;
187+
fileRequester.alfrescoPdfContentWorkspacePath = "/" + ALFRESCO_WORKSPACE_TRANSFORMATION_PATH;
158188
fileRequester.alfrescoReadUser = "user1234";
159189
fileRequester.restClient = new AlfrescoRestClient();
160190
setField(fileRequester.restClient, "alfrescoBaseUri", basePath);

file/file-api/src/main/java/uk/gov/justice/services/file/api/requester/FileRequester.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,21 @@ public interface FileRequester {
1010

1111
/**
1212
* Requests a file from the FileService.
13-
*
14-
* @param fileId - the unique id of the file.
13+
* @param fileId - the unique id of the file.
1514
* @param fileMimeType - mime-type of the file.
16-
* @param fileName - name of the file.
15+
* @param fileName - name of the file.
1716
* @return streamed content of the file.
1817
*/
1918
Optional<InputStream> request(final String fileId, final String fileMimeType, final String fileName);
2019

2120
/**
22-
* Requests for stream the pdf transformation of the file that given by its fileId from the FileService.
23-
*
24-
* @param fileId - the unique id of the file.
21+
* Requests a file from the FileService.
22+
* @param fileId - the unique id of the file.
2523
* @param fileName - name of the file.
24+
* @param transformPdf - is pdf transformation of the file needed.
2625
* @return streamed content of the file.
2726
*/
28-
Optional<InputStream> requestPdf(final String fileId, final String fileName);
27+
Optional<InputStream> request(final String fileId, final String fileMimeType, final String fileName, final boolean transformPdf);
2928

3029
}
3130

0 commit comments

Comments
 (0)