Skip to content

Commit

Permalink
added delete descriptor group endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
marcos-lg committed Aug 1, 2024
1 parent 2062f1a commit 423e75b
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
import org.gbif.api.model.collections.descriptors.DescriptorGroup;
import org.gbif.api.model.collections.latimercore.ObjectGroup;
import org.gbif.api.model.collections.request.CollectionSearchRequest;
import org.gbif.api.model.collections.request.DescriptorSearchRequest;
import org.gbif.api.model.collections.request.DescriptorGroupSearchRequest;
import org.gbif.api.model.collections.request.DescriptorSearchRequest;
import org.gbif.api.model.collections.suggestions.CollectionChangeSuggestion;
import org.gbif.api.model.collections.suggestions.Type;
import org.gbif.api.model.collections.view.CollectionView;
Expand Down Expand Up @@ -239,7 +239,8 @@ public void createFromDatasetTest() {
@SneakyThrows
@Test
public void createDescriptorGroupTest() {
when(descriptorsService.createDescriptorGroup(any(), any(), any(), any(), any())).thenReturn(1L);
when(descriptorsService.createDescriptorGroup(any(), any(), any(), any(), any()))
.thenReturn(1L);

Resource descriptorsResource = new ClassPathResource("collections/descriptors.csv");
MultipartFile descriptorsFile =
Expand Down Expand Up @@ -350,6 +351,21 @@ public void getDescriptorTest() {
assertEquals(descriptor, getClient().getCollectionDescriptor(collectionKey, 1L, 1L));
}

@Test
public void deleteDescriptorTest() {
UUID collectionKey = UUID.randomUUID();

DescriptorGroup descriptorGroup = new DescriptorGroup();
descriptorGroup.setKey(1L);
descriptorGroup.setCollectionKey(collectionKey);
descriptorGroup.setTitle("title");

when(resourceNotFoundService.entityExists(any(), any())).thenReturn(true);
when(descriptorsService.getDescriptorGroup(anyLong())).thenReturn(descriptorGroup);

assertDoesNotThrow(() -> getClient().deleteCollectionDescriptorGroup(collectionKey, 1L));
}

protected CollectionClient getClient() {
return (CollectionClient) baseClient;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
import org.gbif.api.model.collections.descriptors.DescriptorGroup;
import org.gbif.api.model.collections.latimercore.ObjectGroup;
import org.gbif.api.model.collections.request.CollectionSearchRequest;
import org.gbif.api.model.collections.request.DescriptorSearchRequest;
import org.gbif.api.model.collections.request.DescriptorGroupSearchRequest;
import org.gbif.api.model.collections.request.DescriptorSearchRequest;
import org.gbif.api.model.collections.suggestions.CollectionChangeSuggestion;
import org.gbif.api.model.collections.view.CollectionView;
import org.gbif.api.model.common.export.ExportFormat;
Expand Down Expand Up @@ -131,7 +131,14 @@ DescriptorGroup getCollectionDescriptorGroup(
@PathVariable("collectionKey") UUID collectionKey,
@PathVariable("key") long descriptorGroupKey);

@GetMapping(value = "{collectionKey}/descriptorGroup", produces = MediaType.APPLICATION_JSON_VALUE)
@DeleteMapping(value = "{collectionKey}/descriptorGroup/{key}")
void deleteCollectionDescriptorGroup(
@PathVariable("collectionKey") UUID collectionKey,
@PathVariable("key") long descriptorGroupKey);

@GetMapping(
value = "{collectionKey}/descriptorGroup",
produces = MediaType.APPLICATION_JSON_VALUE)
PagingResponse<DescriptorGroup> listCollectionDescriptorGroups(
@PathVariable("collectionKey") UUID collectionKey,
@SpringQueryMap DescriptorGroupSearchRequest searchRequest);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,10 @@
import org.gbif.api.model.collections.SourceableField;
import org.gbif.api.model.collections.descriptors.Descriptor;
import org.gbif.api.model.collections.descriptors.DescriptorGroup;
import org.gbif.api.model.collections.descriptors.DescriptorGroup;
import org.gbif.api.model.collections.latimercore.ObjectGroup;
import org.gbif.api.model.collections.request.CollectionSearchRequest;
import org.gbif.api.model.collections.request.DescriptorGroupSearchRequest;
import org.gbif.api.model.collections.request.DescriptorSearchRequest;
import org.gbif.api.model.collections.request.DescriptorGroupSearchRequest;
import org.gbif.api.model.collections.suggestions.CollectionChangeSuggestion;
import org.gbif.api.model.collections.view.CollectionView;
import org.gbif.api.model.common.export.ExportFormat;
Expand Down Expand Up @@ -478,12 +476,15 @@ public List<SourceableField> getSourceableFields() {
name = "Order",
properties = @ExtensionProperty(name = "Order", value = "0500")))
@Docs.DefaultEntityKeyParameter
@ApiResponse(responseCode = "200", description = "Collection descriptor groups found and returned")
@ApiResponse(
responseCode = "200",
description = "Collection descriptor groups found and returned")
@Docs.DefaultUnsuccessfulReadResponses
@GetMapping("{collectionKey}/descriptorGroup")
@NullToNotFound("/grscicoll/collection/{collectionKey}/descriptorGroup")
public PagingResponse<DescriptorGroup> listCollectionDescriptorGroups(
@PathVariable("collectionKey") UUID collectionKey, DescriptorGroupSearchRequest searchRequest) {
@PathVariable("collectionKey") UUID collectionKey,
DescriptorGroupSearchRequest searchRequest) {
return descriptorsService.listDescriptorGroups(collectionKey, searchRequest);
}

Expand Down Expand Up @@ -542,7 +543,8 @@ public void updateDescriptorGroup(
@RequestPart("descriptorsFile") MultipartFile descriptorsFile,
@RequestParam("title") @Trim String title,
@RequestParam(value = "description", required = false) @Trim String description) {
DescriptorGroup existingDescriptorGroup = descriptorsService.getDescriptorGroup(descriptorGroupKey);
DescriptorGroup existingDescriptorGroup =
descriptorsService.getDescriptorGroup(descriptorGroupKey);
Preconditions.checkArgument(existingDescriptorGroup.getCollectionKey().equals(collectionKey));

descriptorsService.updateDescriptorGroup(
Expand All @@ -554,7 +556,7 @@ public void updateDescriptorGroup(
}

@Operation(
operationId = "getCollectionDescriptor",
operationId = "getCollectionDescriptorGroup",
summary = "Get details of a single collection descriptor",
description = "Details of a single collection descriptor",
extensions =
Expand All @@ -569,11 +571,34 @@ public void updateDescriptorGroup(
public DescriptorGroup getCollectionDescriptorGroup(
@PathVariable("collectionKey") UUID collectionKey,
@PathVariable("key") long descriptorGroupKey) {
DescriptorGroup existingDescriptorGroup = descriptorsService.getDescriptorGroup(descriptorGroupKey);
DescriptorGroup existingDescriptorGroup =
descriptorsService.getDescriptorGroup(descriptorGroupKey);
Preconditions.checkArgument(existingDescriptorGroup.getCollectionKey().equals(collectionKey));
return existingDescriptorGroup;
}

@Operation(
operationId = "deleteCollectionDescriptorGroup",
summary = "Get details of a single collection descriptor group",
description = "Details of a single collection descriptor group",
extensions =
@Extension(
name = "Order",
properties = @ExtensionProperty(name = "Order", value = "0510")))
@Docs.DefaultEntityKeyParameter
@ApiResponse(responseCode = "204", description = "Descriptor group marked as deleted")
@Docs.DefaultUnsuccessfulReadResponses
@Docs.DefaultUnsuccessfulWriteResponses
@DeleteMapping("{collectionKey}/descriptorGroup/{key}")
public void deleteCollectionDescriptorGroup(
@PathVariable("collectionKey") UUID collectionKey,
@PathVariable("key") long descriptorGroupKey) {
DescriptorGroup existingDescriptorGroup =
descriptorsService.getDescriptorGroup(descriptorGroupKey);
Preconditions.checkArgument(existingDescriptorGroup.getCollectionKey().equals(collectionKey));
descriptorsService.deleteDescriptorGroup(descriptorGroupKey);
}

@Operation(
operationId = "getCollectionDescriptors",
summary = "Lists the descriptors.",
Expand Down

0 comments on commit 423e75b

Please sign in to comment.