Skip to content

Commit 9b8d586

Browse files
Remove boolean extract parameters from DataCollection endpoint
1 parent 4c9f7f8 commit 9b8d586

File tree

4 files changed

+40
-85
lines changed

4 files changed

+40
-85
lines changed

src/main/java/org/icatproject/topcat/DownloadBuilder.java

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -148,13 +148,9 @@ private static DownloadItem createDownloadItem(Download download, long entityId,
148148
* Investigations will be split into constituent Datasets.
149149
*
150150
* @param dataCollectionId ICAT DataCollection.id
151-
* @param extractInvestigations Whether to use the DataCollectionInvestigations
152-
* @param extractDatasets Whether to use the DataCollectionDatasets
153-
* @param extractDatafiles Whether to use the DataCollectionDatafiles
154151
* @throws TopcatException if querying ICAT fails
155152
*/
156-
public void extractDataCollection(Long dataCollectionId, Boolean extractInvestigations, Boolean extractDatasets,
157-
Boolean extractDatafiles) throws TopcatException {
153+
public void extractDataCollection(Long dataCollectionId) throws TopcatException {
158154

159155
logger.info("extractDataCollection called for {}", dataCollectionId);
160156
if (dataCollectionId == null || dataCollectionId < 1) {
@@ -167,19 +163,10 @@ public void extractDataCollection(Long dataCollectionId, Boolean extractInvestig
167163

168164
JsonArrayBuilder datasetsBuilder = Json.createArrayBuilder();
169165
JsonArray datafiles = JsonArray.EMPTY_JSON_ARRAY;
170-
if (extractInvestigations) {
171-
for (JsonValue dataset : icatClient.getDataCollectionInvestigationDatasets(dataCollectionId)) {
172-
datasetsBuilder.add(dataset);
173-
}
174-
}
175-
if (extractDatasets) {
176-
for (JsonValue dataset : icatClient.getDataCollectionDatasets(dataCollectionId)) {
177-
datasetsBuilder.add(dataset);
178-
}
179-
}
180-
if (extractDatafiles) {
181-
datafiles = icatClient.getDataCollectionDatafiles(dataCollectionId);
166+
for (JsonValue dataset : icatClient.getDataCollectionDatasets(dataCollectionId)) {
167+
datasetsBuilder.add(dataset);
182168
}
169+
datafiles = icatClient.getDataCollectionDatafiles(dataCollectionId);
183170
JsonArray datasets = datasetsBuilder.build();
184171

185172
if (datasets.size() == 0 && datafiles.size() == 0) {

src/main/java/org/icatproject/topcat/IcatClient.java

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -234,24 +234,6 @@ public DatafilesResponse getDatafiles(List<String> files) throws TopcatException
234234
return response;
235235
}
236236

237-
/**
238-
* Get all Datasets whose parent Investigation is in the specified DataCollection.
239-
*
240-
* @param dataCollectionId ICAT DataCollection.id
241-
* @return JsonArray of Dataset fields, where each entry is a JsonArray of
242-
* [dataset.id, dataset.fileCount, dataset.fileSize].
243-
* @throws TopcatException
244-
*/
245-
public JsonArray getDataCollectionInvestigationDatasets(long dataCollectionId) throws TopcatException {
246-
System.out.println(dataCollectionId);
247-
String query = "SELECT DISTINCT dataset.id, dataset.fileCount, dataset.fileSize";
248-
query += " FROM DataCollectionInvestigation dataCollectionInvestigation";
249-
query += " JOIN Investigation investigation JOIN Dataset dataset";
250-
query += " WHERE dataCollectionInvestigation.dataCollection.id = " + dataCollectionId;
251-
query += " ORDER BY dataset.id";
252-
return submitQuery(query);
253-
}
254-
255237
/**
256238
* Get all Datasets in the specified DataCollection.
257239
*

src/main/java/org/icatproject/topcat/web/rest/UserResource.java

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -908,16 +908,16 @@ public Response queueVisitId(@FormParam("facilityName") String facilityName,
908908
}
909909

910910
/**
911-
* Queue an entire visit for download, split by Dataset into part Downloads if
912-
* needed.
911+
* Queues all Datasets and Datafiles in a DataCollection for download, split into
912+
* part Downloads if needed. Investigations are not extracted.
913913
*
914-
* @param facilityName ICAT Facility.name
915-
* @param sessionId ICAT sessionId
916-
* @param transport Transport mechanism to use
917-
* @param fileName Optional name to use as the root for each individual part
918-
* Download. Defaults to facilityName_visitId.
919-
* @param email Optional email to notify upon completion
920-
* @param visitId ICAT Investigation.visitId to submit
914+
* @param facilityName ICAT Facility.name
915+
* @param sessionId ICAT sessionId
916+
* @param transport Transport mechanism to use
917+
* @param fileName Optional name to use as the root for each individual part
918+
* Download. Defaults to facilityName_visitId.
919+
* @param email Optional email to notify upon completion
920+
* @param dataCollectionId ICAT DataCollection.id to submit
921921
* @return Array of Download ids
922922
* @throws TopcatException
923923
*/
@@ -926,13 +926,10 @@ public Response queueVisitId(@FormParam("facilityName") String facilityName,
926926
public Response queueDataCollection(@FormParam("facilityName") String facilityName,
927927
@FormParam("sessionId") String sessionId, @FormParam("transport") String transport,
928928
@FormParam("fileName") String fileName, @FormParam("email") String email,
929-
@FormParam("dataCollectionId") Long dataCollectionId,
930-
@FormParam("extractInvestigations") Boolean extractInvestigations,
931-
@FormParam("extractDatasets") Boolean extractDatasets,
932-
@FormParam("extractDatafiles") Boolean extractDatafiles) throws TopcatException {
929+
@FormParam("dataCollectionId") Long dataCollectionId) throws TopcatException {
933930

934931
DownloadBuilder downloadBuilder = new DownloadBuilder(sessionId, email, fileName, transport, facilityName);
935-
downloadBuilder.extractDataCollection(dataCollectionId, extractInvestigations, extractDatasets, extractDatafiles);
932+
downloadBuilder.extractDataCollection(dataCollectionId);
936933

937934
String transportUrl = getDownloadUrl(downloadBuilder.facilityName, downloadBuilder.transport);
938935
IdsClient idsClient = new IdsClient(transportUrl);

src/test/java/org/icatproject/topcat/UserResourceTest.java

Lines changed: 25 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -440,62 +440,51 @@ public void testQueueFilesNotFound() throws Exception {
440440
public void testQueueDataCollection() throws Exception {
441441
System.out.println("DEBUG testQueueDataCollection");
442442
List<Long> downloadIds = new ArrayList<>();
443-
long finalId = 0L;
443+
Long downloadIdDataset = null;
444+
Long downloadIdDatafile = null;
444445
try {
445446
String transport = "http";
446447
String email = "";
447448
IcatClient icatClient = new IcatClient("https://localhost:8181", sessionId);
448449
JsonObject dataCollection = icatClient.getEntity("DataCollection");
449450
long entityId = dataCollection.getInt("id");
450-
Response response = userResource.queueDataCollection(null, sessionId, transport, null, email, entityId, true, true, true);
451+
Response response = userResource.queueDataCollection(null, sessionId, transport, null, email, entityId);
451452
assertEquals(200, response.getStatus());
452453

453454
JsonArray downloadIdsArray = Utils.parseJsonArray(response.getEntity().toString());
454-
assertEquals(302, downloadIdsArray.size());
455-
long part = 1;
456-
for (JsonNumber downloadIdJson : downloadIdsArray.getValuesAs(JsonNumber.class)) {
457-
long downloadId = downloadIdJson.longValueExact();
458-
downloadIds.add(downloadId);
459-
}
460-
finalId = downloadIds.remove(downloadIds.size() - 1);
461-
for (long downloadId : downloadIds) {
462-
Download download = downloadRepository.getDownload(downloadId);
463-
assertNull(download.getPreparedId());
464-
assertEquals(DownloadStatus.QUEUED, download.getStatus());
465-
assertEquals(0, download.getInvestigationIds().size());
466-
assertEquals(1, download.getDatasetIds().size());
467-
assertEquals(0, download.getDatafileIds().size());
468-
if (part < 10) {
469-
assertEquals("LILS_DataCollection" + entityId + "_part_00" + part + "_of_302", download.getFileName());
470-
} else if (part < 100) {
471-
assertEquals("LILS_DataCollection" + entityId + "_part_0" + part + "_of_302", download.getFileName());
472-
} else {
473-
assertEquals("LILS_DataCollection" + entityId + "_part_" + part + "_of_302", download.getFileName());
474-
}
475-
assertEquals(transport, download.getTransport());
476-
assertEquals("simple/root", download.getUserName());
477-
assertEquals("simple/root", download.getFullName());
478-
assertEquals("", download.getEmail());
479-
assertNotEquals(0L, download.getSize());
480-
part += 1;
481-
}
482-
Download download = downloadRepository.getDownload(finalId);
455+
assertEquals(2, downloadIdsArray.size());
456+
List<JsonNumber> downloadIdJsonNumbers = downloadIdsArray.getValuesAs(JsonNumber.class);
457+
downloadIdDataset = downloadIdJsonNumbers.get(0).longValueExact();
458+
downloadIdDatafile = downloadIdJsonNumbers.get(1).longValueExact();
459+
460+
Download download = downloadRepository.getDownload(downloadIdDataset);
461+
assertNull(download.getPreparedId());
462+
assertEquals(DownloadStatus.QUEUED, download.getStatus());
463+
assertEquals(0, download.getInvestigationIds().size());
464+
assertEquals(1, download.getDatasetIds().size());
465+
assertEquals(0, download.getDatafileIds().size());
466+
assertEquals("LILS_DataCollection" + entityId + "_part_1_of_2", download.getFileName());
467+
assertEquals(transport, download.getTransport());
468+
assertEquals("simple/root", download.getUserName());
469+
assertEquals("simple/root", download.getFullName());
470+
assertEquals("", download.getEmail());
471+
assertNotEquals(0L, download.getSize());
472+
473+
download = downloadRepository.getDownload(downloadIdDatafile);
483474
assertNull(download.getPreparedId());
484475
assertEquals(DownloadStatus.QUEUED, download.getStatus());
485476
assertEquals(0, download.getInvestigationIds().size());
486477
assertEquals(0, download.getDatasetIds().size());
487478
assertEquals(1, download.getDatafileIds().size());
488-
assertEquals("LILS_DataCollection" + entityId + "_part_" + part + "_of_302", download.getFileName());
479+
assertEquals("LILS_DataCollection" + entityId + "_part_2_of_2", download.getFileName());
489480
assertEquals(transport, download.getTransport());
490481
assertEquals("simple/root", download.getUserName());
491482
assertEquals("simple/root", download.getFullName());
492483
assertEquals("", download.getEmail());
493484
assertNotEquals(0L, download.getSize());
494485
} finally {
495-
for (long downloadId : downloadIds) {
496-
downloadRepository.removeDownload(downloadId);
497-
}
498-
downloadRepository.removeDownload(finalId);
486+
downloadRepository.removeDownload(downloadIdDataset);
487+
downloadRepository.removeDownload(downloadIdDatafile);
499488
}
500489
}
501490

0 commit comments

Comments
 (0)