Skip to content

Commit 59a9451

Browse files
committed
Review RepresentationController and RepresentationService
1 parent cc3b077 commit 59a9451

2 files changed

Lines changed: 10 additions & 48 deletions

File tree

roda-ui/roda-wui/src/main/java/org/roda/wui/api/v2/controller/RepresentationController.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,7 @@
66

77
import org.roda.core.RodaCoreFactory;
88
import org.roda.core.data.common.RodaConstants;
9-
import org.roda.core.data.exceptions.AuthorizationDeniedException;
10-
import org.roda.core.data.exceptions.GenericException;
11-
import org.roda.core.data.exceptions.NotFoundException;
129
import org.roda.core.data.exceptions.RODAException;
13-
import org.roda.core.data.exceptions.RequestNotValidException;
1410
import org.roda.core.data.v2.generics.LongResponse;
1511
import org.roda.core.data.v2.generics.select.SelectedItemsRequest;
1612
import org.roda.core.data.v2.index.CountRequest;
@@ -30,7 +26,6 @@
3026
import org.roda.core.data.v2.ip.IndexedRepresentation;
3127
import org.roda.core.data.v2.ip.Representation;
3228
import org.roda.core.data.v2.jobs.Job;
33-
import org.roda.core.data.v2.log.LogEntryState;
3429
import org.roda.core.data.v2.representation.ChangeRepresentationStatesRequest;
3530
import org.roda.core.data.v2.representation.ChangeTypeRequest;
3631
import org.roda.core.data.v2.representation.RepresentationTypeOptions;
@@ -43,13 +38,10 @@
4338
import org.roda.wui.api.v2.utils.ApiUtils;
4439
import org.roda.wui.api.v2.utils.CommonServicesUtils;
4540
import org.roda.wui.client.services.RepresentationRestService;
46-
import org.roda.wui.common.ControllerAssistant;
4741
import org.roda.wui.common.I18nUtility;
4842
import org.roda.wui.common.RequestControllerAssistant;
4943
import org.roda.wui.common.model.RequestContext;
5044
import org.roda.wui.common.utils.RequestUtils;
51-
import org.slf4j.Logger;
52-
import org.slf4j.LoggerFactory;
5345
import org.springframework.beans.factory.annotation.Autowired;
5446
import org.springframework.http.ResponseEntity;
5547
import org.springframework.web.bind.annotation.RequestBody;
@@ -66,7 +58,7 @@
6658
@RestController
6759
@RequestMapping(path = "/api/v2/representations")
6860
public class RepresentationController implements RepresentationRestService, Exportable {
69-
private static final Logger LOGGER = LoggerFactory.getLogger(RepresentationController.class);
61+
7062
@Autowired
7163
private HttpServletRequest request;
7264
@Autowired
@@ -78,13 +70,11 @@ public class RepresentationController implements RepresentationRestService, Expo
7870

7971
@Override
8072
public IndexedRepresentation findByUuid(String uuid, String localeString) {
81-
RequestContext requestContext = RequestUtils.parseHTTPRequest(request);
8273
return indexService.retrieve(IndexedRepresentation.class, uuid, new ArrayList<>());
8374
}
8475

8576
@Override
8677
public IndexResult<IndexedRepresentation> find(@RequestBody FindRequest findRequest, String localeString) {
87-
RequestContext requestContext = RequestUtils.parseHTTPRequest(request);
8878
return indexService.find(IndexedRepresentation.class, findRequest, localeString);
8979
}
9080

@@ -100,7 +90,6 @@ public LongResponse count(@RequestBody CountRequest countRequest) {
10090

10191
@Override
10292
public List<String> suggest(@RequestBody SuggestRequest suggestRequest) {
103-
RequestContext requestContext = RequestUtils.parseHTTPRequest(request);
10493
return indexService.suggest(suggestRequest, IndexedRepresentation.class);
10594
}
10695

roda-ui/roda-wui/src/main/java/org/roda/wui/api/v2/services/RepresentationService.java

Lines changed: 9 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.roda.wui.api.v2.services;
22

3-
import java.io.PrintStream;
43
import java.util.ArrayList;
54
import java.util.Collections;
65
import java.util.HashMap;
@@ -11,7 +10,6 @@
1110
import java.util.Optional;
1211

1312
import org.apache.commons.lang3.StringUtils;
14-
import org.apache.coyote.Request;
1513
import org.roda.core.RodaCoreFactory;
1614
import org.roda.core.common.Messages;
1715
import org.roda.core.common.iterables.CloseableIterables;
@@ -22,8 +20,6 @@
2220
import org.roda.core.data.exceptions.NotFoundException;
2321
import org.roda.core.data.exceptions.RODAException;
2422
import org.roda.core.data.exceptions.RequestNotValidException;
25-
import org.roda.core.data.v2.ConsumesOutputStream;
26-
import org.roda.core.data.v2.DefaultConsumesOutputStream;
2723
import org.roda.core.data.v2.StreamResponse;
2824
import org.roda.core.data.v2.index.select.SelectedItems;
2925
import org.roda.core.data.v2.ip.IndexedRepresentation;
@@ -45,10 +41,8 @@
4541
import org.roda.core.plugins.base.maintenance.ChangeRepresentationStatusPlugin;
4642
import org.roda.core.plugins.base.maintenance.ChangeTypePlugin;
4743
import org.roda.core.plugins.base.maintenance.DeleteRODAObjectPlugin;
48-
import org.roda.core.storage.Binary;
4944
import org.roda.wui.api.v2.utils.ApiUtils;
5045
import org.roda.wui.api.v2.utils.CommonServicesUtils;
51-
import org.roda.wui.common.HTMLUtils;
5246
import org.roda.wui.common.model.RequestContext;
5347
import org.roda.wui.common.server.ServerTools;
5448
import org.slf4j.Logger;
@@ -61,11 +55,9 @@
6155
@Service
6256
public class RepresentationService {
6357
private static final Logger LOGGER = LoggerFactory.getLogger(RepresentationService.class);
64-
private static final String HTML_EXT = ".html";
6558

66-
private static DescriptiveMetadataInfo retrieveDescriptiveMetadataBundle(String aipId, String representationId,
59+
private static DescriptiveMetadataInfo retrieveDescriptiveMetadataBundle(ModelService model,
6760
DescriptiveMetadata descriptiveMetadata, final Locale locale) {
68-
ModelService model = RodaCoreFactory.getModelService();
6961
Messages messages = RodaCoreFactory.getI18NMessages(locale);
7062
DescriptiveMetadataInfo info = new DescriptiveMetadataInfo();
7163
info.setId(descriptiveMetadata.getId());
@@ -107,7 +99,8 @@ public Representation retrieveAIPRepresentation(RequestContext requestContext, I
10799
return model.retrieveRepresentation(aipId, representationId);
108100
}
109101

110-
public StreamResponse retrieveAIPRepresentationBinary(RequestContext requestContext, IndexedRepresentation representation)
102+
public StreamResponse retrieveAIPRepresentationBinary(RequestContext requestContext,
103+
IndexedRepresentation representation)
111104
throws GenericException, RequestNotValidException, NotFoundException, AuthorizationDeniedException {
112105
return ApiUtils.download(requestContext, representation);
113106
}
@@ -203,35 +196,15 @@ private static List<DescriptiveMetadata> orderDescriptiveMetadata(List<Descripti
203196
return orderedMetadata;
204197
}
205198

206-
public StreamResponse retrieveRepresentationDescriptiveMetadata(String aipId, String representationId,
207-
String metadataId, String localeString)
208-
throws AuthorizationDeniedException, RequestNotValidException, NotFoundException, GenericException {
209-
ModelService modelService = RodaCoreFactory.getModelService();
210-
Binary descriptiveMetadataBinary = modelService.retrieveDescriptiveMetadataBinary(aipId, representationId,
211-
metadataId);
212-
String filename = descriptiveMetadataBinary.getStoragePath().getName() + HTML_EXT;
213-
DescriptiveMetadata descriptiveMetadata = modelService.retrieveDescriptiveMetadata(aipId, representationId,
214-
metadataId);
215-
String htmlDescriptive = HTMLUtils.descriptiveMetadataToHtml(descriptiveMetadataBinary,
216-
descriptiveMetadata.getType(), descriptiveMetadata.getVersion(), ServerTools.parseLocale(localeString));
217-
218-
ConsumesOutputStream stream = new DefaultConsumesOutputStream(filename, RodaConstants.MEDIA_TYPE_TEXT_HTML, out -> {
219-
PrintStream printStream = new PrintStream(out);
220-
printStream.print(htmlDescriptive);
221-
printStream.close();
222-
});
223-
224-
return new StreamResponse(stream);
225-
}
226-
227-
public StreamResponse retrieveAIPRepresentationOtherMetadata(RequestContext requestContext, IndexedRepresentation representation)
199+
public StreamResponse retrieveAIPRepresentationOtherMetadata(RequestContext requestContext,
200+
IndexedRepresentation representation)
228201
throws GenericException, RequestNotValidException, NotFoundException, AuthorizationDeniedException {
229202
return ApiUtils.download(requestContext, representation, RodaConstants.STORAGE_DIRECTORY_METADATA,
230203
RodaConstants.STORAGE_DIRECTORY_OTHER);
231204
}
232205

233-
public DescriptiveMetadataInfos getDescriptiveMetadata(RequestContext requestContext, IndexedRepresentation indexedRepresentation,
234-
String localeString)
206+
public DescriptiveMetadataInfos getDescriptiveMetadata(RequestContext requestContext,
207+
IndexedRepresentation indexedRepresentation, String localeString)
235208
throws AuthorizationDeniedException, RequestNotValidException, NotFoundException, GenericException {
236209
Locale locale = ServerTools.parseLocale(localeString);
237210
DescriptiveMetadataInfos descriptiveMetadataInfos = new DescriptiveMetadataInfos();
@@ -244,8 +217,8 @@ public DescriptiveMetadataInfos getDescriptiveMetadata(RequestContext requestCon
244217
List<DescriptiveMetadata> orderedMetadata = orderDescriptiveMetadata(representation.getDescriptiveMetadata());
245218

246219
for (DescriptiveMetadata descriptiveMetadata : orderedMetadata) {
247-
descriptiveMetadataInfos.addObject(retrieveDescriptiveMetadataBundle(representation.getAipId(),
248-
representation.getId(), descriptiveMetadata, locale));
220+
descriptiveMetadataInfos
221+
.addObject(retrieveDescriptiveMetadataBundle(requestContext.getModelService(), descriptiveMetadata, locale));
249222
}
250223
}
251224

0 commit comments

Comments
 (0)