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

Commit 5620417

Browse files
Merge pull request #45 from Breeding-Insight/feature/BI-2431
BI-2431 & BI-2475 - BrAPI Server changes to support Sample & Plate deletion
2 parents 78e5868 + 4802f13 commit 5620417

File tree

5 files changed

+65
-6
lines changed

5 files changed

+65
-6
lines changed

src/main/java/io/swagger/model/core/BatchDeleteSearchRequest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.fasterxml.jackson.annotation.JsonSubTypes;
55
import com.fasterxml.jackson.annotation.JsonTypeInfo;
66
import io.swagger.model.SearchRequest;
7+
import io.swagger.model.geno.PlateSearchRequest;
78
import io.swagger.model.geno.SampleSearchRequest;
89
import io.swagger.model.germ.GermplasmSearchRequest;
910

@@ -17,7 +18,8 @@ public class BatchDeleteSearchRequest extends SearchRequest {
1718
@JsonSubTypes.Type(value = GermplasmSearchRequest.class, name = "germplasm"),
1819
@JsonSubTypes.Type(value = ListSearchRequest.class, name = "lists"),
1920
@JsonSubTypes.Type(value = TrialSearchRequest.class, name = "trials"),
20-
@JsonSubTypes.Type(value = SampleSearchRequest.class, name = "samples")
21+
@JsonSubTypes.Type(value = SampleSearchRequest.class, name = "samples"),
22+
@JsonSubTypes.Type(value = PlateSearchRequest.class, name = "plates")
2123
})
2224
private SearchRequest searchRequest = null;
2325

src/main/java/io/swagger/model/core/BatchDeleteTypes.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ public enum BatchDeleteTypes {
1111
GERMPLASM("germplasm"),
1212
LISTS("lists"),
1313
TRIALS("trials"),
14-
SAMPLES("samples");
14+
SAMPLES("samples"),
15+
PLATES("plates");
1516

1617

1718
private final String value;

src/main/java/org/brapi/test/BrAPITestServer/controller/core/BatchDeletesApiController.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,11 @@ public ResponseEntity<? extends BrAPIResponse> batchDeletesPost(@Valid @RequestB
113113
BrAPIComponent component = componentFactory.getComponent(batchType);
114114

115115
// Return the searchDbId with a 202 if the search is too in-depth with several parameters
116-
String searchReqDbId = searchService.saveSearchRequest(body, SearchRequestEntity.SearchRequestTypes.BATCHES);
117-
if (searchReqDbId != null) {
118-
return responseAccepted(searchReqDbId);
119-
}
116+
// TODO: disabled for now
117+
//String searchReqDbId = searchService.saveSearchRequest(body, SearchRequestEntity.SearchRequestTypes.BATCHES);
118+
//if (searchReqDbId != null) {
119+
// return responseAccepted(searchReqDbId);
120+
//}
120121

121122
// Fetch requested BrAPI entities
122123
SearchRequest entitySearch = body.getSearchRequest();
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package org.brapi.test.BrAPITestServer.factory.geno;
2+
3+
import io.swagger.model.Metadata;
4+
import io.swagger.model.core.BatchDeleteTypes;
5+
import io.swagger.model.geno.Plate;
6+
import io.swagger.model.geno.PlateSearchRequest;
7+
import org.apache.commons.lang3.NotImplementedException;
8+
import org.brapi.test.BrAPITestServer.factory.BrAPIComponent;
9+
import org.brapi.test.BrAPITestServer.service.geno.PlateService;
10+
import org.springframework.beans.factory.annotation.Autowired;
11+
import org.springframework.stereotype.Component;
12+
13+
import java.util.List;
14+
import java.util.stream.Collectors;
15+
16+
@Component
17+
public class PlateComponent implements BrAPIComponent<Plate, PlateSearchRequest> {
18+
private final PlateService plateService;
19+
20+
@Autowired
21+
public PlateComponent(PlateService plateService) {
22+
this.plateService = plateService;
23+
}
24+
25+
@Override
26+
public List<Plate> findEntities(PlateSearchRequest request, Metadata metadata) {
27+
return plateService.findPlates(request, metadata);
28+
}
29+
30+
@Override
31+
public BatchDeleteTypes getBatchDeleteType() {
32+
return BatchDeleteTypes.PLATES;
33+
}
34+
35+
36+
@Override
37+
public List<String> collectDbIds(List<Plate> entities) {
38+
return entities.stream().map(Plate::getPlateDbId).collect(Collectors.toList());
39+
}
40+
41+
@Override
42+
public void deleteBatchDeleteData(List<String> dbIds) {
43+
plateService.deletePlateBatch(dbIds);
44+
}
45+
46+
@Override
47+
public void softDeleteBatchDeleteData(List<String> dbIds) {
48+
//TODO: implement if needed in future
49+
throw new NotImplementedException("plate softDeleteBatchDeleteData not implemented");
50+
}
51+
}

src/main/java/org/brapi/test/BrAPITestServer/service/geno/PlateService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,10 @@ public List<Plate> updatePlates(Map<String, PlateNewRequest> requests) throws Br
154154

155155
}
156156

157+
public void deletePlateBatch(List<String> plateDbIds) {
158+
plateRepository.deleteAllByIdInBatch(plateDbIds);
159+
}
160+
157161
private void updateEntity(PlateEntity entity, PlateNewRequest plate) throws BrAPIServerException {
158162
UpdateUtility.updateEntity(plate, entity);
159163
if (plate.getPlateName() != null) {

0 commit comments

Comments
 (0)