Skip to content

Commit

Permalink
adding source and sourceId filter to existing api (#566)
Browse files Browse the repository at this point in the history
* adding filter to existing api #564

* updated gbif-api version

* adding filter to existing api #564

* gbif/pipelines#957 Add extra logging to track step changes

* gbif/pipelines#957 Add type to extra logging to track step changes

* adding filter to existing api #564

* adding filter to existing api #564

* adding filter to existing api #564

* adding filter to existing api #564

* adding filter to existing api #564

---------

Co-authored-by: Marcos Lopez Gonzalez <[email protected]>
Co-authored-by: Nikolay Volik <[email protected]>
  • Loading branch information
3 people authored Apr 24, 2024
1 parent 83ddbf1 commit 20fe72d
Show file tree
Hide file tree
Showing 16 changed files with 161 additions and 23 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@
<gbif-doi.version>2.17</gbif-doi.version>
<gbif-download-query-tools.version>1.51.0</gbif-download-query-tools.version>
<gbif-httputils.version>0.10</gbif-httputils.version>
<gbif-metadata-profile.version>2.1</gbif-metadata-profile.version>
<gbif-metadata-profile.version>2.2-SNAPSHOT</gbif-metadata-profile.version>
<gbif-parsers.version>0.60</gbif-parsers.version>
<gbif-postal-service.version>1.8.0</gbif-postal-service.version>
<xoai.version>4.1.0-gbif-4</xoai.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ public void listTest() {
req.setAccessionStatus(AccessionStatus.INSTITUTIONAL);
req.setPreservationTypes(
Arrays.asList(PreservationType.SAMPLE_CRYOPRESERVED, PreservationType.SAMPLE_DRIED));

PagingResponse<CollectionView> result = getClient().list(req);
assertEquals(views.size(), result.getResults().size());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,17 +144,31 @@ public void listTest() {
collection2.setAddress(address2);
UUID key2 = collectionService.create(collection2);

Collection collection3 = testData.newEntity();
collection3.setCode("c3");
collection3.setName("n3");
MasterSourceMetadata sourceMetadata = new MasterSourceMetadata();
sourceMetadata.setCreatedBy("test");
sourceMetadata.setSourceId("test-123");
sourceMetadata.setSource(Source.IH_IRN);
collection3.setMasterSourceMetadata(sourceMetadata);
UUID key3 = collectionService.create(collection3);
collectionService.addMasterSourceMetadata(key3,sourceMetadata);

// query param
PagingResponse<CollectionView> response =
collectionService.list(
CollectionSearchRequest.builder().query("dummy").page(DEFAULT_PAGE).build());
assertEquals(2, response.getResults().size());
assertEquals(3, response.getResults().size());

response = collectionService.list(CollectionSearchRequest.builder().source(Source.IH_IRN).sourceId("test-123").build());
assertEquals(1,response.getResults().size());

// empty queries are ignored and return all elements
response =
collectionService.list(
CollectionSearchRequest.builder().query("").page(DEFAULT_PAGE).build());
assertEquals(2, response.getResults().size());
assertEquals(3, response.getResults().size());

response =
collectionService.list(
Expand All @@ -169,7 +183,7 @@ public void listTest() {
assertEquals(key2, response.getResults().get(0).getCollection().getKey());

assertEquals(
2,
3,
collectionService
.list(CollectionSearchRequest.builder().query("c").page(DEFAULT_PAGE).build())
.getResults()
Expand All @@ -193,13 +207,13 @@ public void listTest() {
.getResults()
.size());
assertEquals(
2,
3,
collectionService
.list(CollectionSearchRequest.builder().page(DEFAULT_PAGE).build())
.getResults()
.size());
assertEquals(
2,
3,
collectionService
.list(CollectionSearchRequest.builder().query(" ").page(DEFAULT_PAGE).build())
.getResults()
Expand Down Expand Up @@ -233,13 +247,13 @@ public void listTest() {
.getResults()
.size());
assertEquals(
1,
2,
collectionService
.list(CollectionSearchRequest.builder().active(true).page(DEFAULT_PAGE).build())
.getResults()
.size());
assertEquals(
1,
2,
collectionService
.list(
CollectionSearchRequest.builder()
Expand Down Expand Up @@ -399,7 +413,7 @@ public void listTest() {
.size());

assertEquals(
1,
2,
collectionService
.list(
CollectionSearchRequest.builder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,16 +124,31 @@ public void listTest() {
institution2.setAddress(address2);
UUID key2 = institutionService.create(institution2);

Institution institution3 = testData.newEntity();
institution3.setCode("c3");
institution3.setName("n3");
institution3.setActive(true);

MasterSourceMetadata sourceMetadata = new MasterSourceMetadata();
sourceMetadata.setCreatedBy("test");
sourceMetadata.setSourceId("test-123");
sourceMetadata.setSource(Source.IH_IRN);
institution3.setMasterSourceMetadata(sourceMetadata);
UUID key3 = institutionService.create(institution3);
institutionService.addMasterSourceMetadata(key3,sourceMetadata);

PagingResponse<Institution> response =
institutionService.list(
InstitutionSearchRequest.builder().query("dummy").page(DEFAULT_PAGE).build());
assertEquals(2, response.getResults().size());
assertEquals(3, response.getResults().size());

response = institutionService.list(InstitutionSearchRequest.builder().source(Source.IH_IRN).sourceId("test-123").build());
assertEquals(1,response.getResults().size());
// empty queries are ignored and return all elements
response =
institutionService.list(
InstitutionSearchRequest.builder().query("").page(DEFAULT_PAGE).build());
assertEquals(2, response.getResults().size());
assertEquals(3, response.getResults().size());

response =
institutionService.list(
Expand Down Expand Up @@ -201,7 +216,7 @@ public void listTest() {

// query param
assertEquals(
2,
3,
institutionService
.list(InstitutionSearchRequest.builder().query("c").page(DEFAULT_PAGE).build())
.getResults()
Expand All @@ -225,19 +240,19 @@ public void listTest() {
.getResults()
.size());
assertEquals(
2,
3,
institutionService
.list(InstitutionSearchRequest.builder().page(DEFAULT_PAGE).build())
.getResults()
.size());
assertEquals(
2,
3,
institutionService
.list(InstitutionSearchRequest.builder().query(" ").page(DEFAULT_PAGE).build())
.getResults()
.size());
assertEquals(
1,
2,
institutionService
.list(InstitutionSearchRequest.builder().active(true).page(DEFAULT_PAGE).build())
.getResults()
Expand Down Expand Up @@ -362,7 +377,7 @@ public void listTest() {
.size());

assertEquals(
1,
2,
institutionService
.list(
InstitutionSearchRequest.builder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.gbif.api.model.collections.AlternativeCode;
import org.gbif.api.model.collections.Collection;
import org.gbif.api.model.collections.Contact;
import org.gbif.api.model.collections.MasterSourceMetadata;
import org.gbif.api.model.collections.UserId;
import org.gbif.api.model.common.paging.Pageable;
import org.gbif.api.model.registry.Identifier;
Expand All @@ -27,12 +28,14 @@
import org.gbif.api.vocabulary.collections.IdType;
import org.gbif.api.vocabulary.collections.MasterSourceType;
import org.gbif.api.vocabulary.collections.PreservationType;
import org.gbif.api.vocabulary.collections.Source;
import org.gbif.registry.database.TestCaseDatabaseInitializer;
import org.gbif.registry.persistence.mapper.IdentifierMapper;
import org.gbif.registry.persistence.mapper.MachineTagMapper;
import org.gbif.registry.persistence.mapper.collections.AddressMapper;
import org.gbif.registry.persistence.mapper.collections.CollectionContactMapper;
import org.gbif.registry.persistence.mapper.collections.CollectionMapper;
import org.gbif.registry.persistence.mapper.collections.MasterSourceSyncMetadataMapper;
import org.gbif.registry.persistence.mapper.collections.dto.CollectionDto;
import org.gbif.registry.persistence.mapper.collections.params.CollectionSearchParams;
import org.gbif.registry.search.test.EsManageServer;
Expand Down Expand Up @@ -66,6 +69,7 @@ public class CollectionMapperIT extends BaseItTest {
private MachineTagMapper machineTagMapper;
private IdentifierMapper identifierMapper;
private CollectionContactMapper contactMapper;
private MasterSourceSyncMetadataMapper metadataMapper;

@Autowired
public CollectionMapperIT(
Expand All @@ -75,13 +79,15 @@ public CollectionMapperIT(
IdentifierMapper identifierMapper,
CollectionContactMapper contactMapper,
SimplePrincipalProvider principalProvider,
EsManageServer esServer) {
EsManageServer esServer,
MasterSourceSyncMetadataMapper metadataMapper) {
super(principalProvider, esServer);
this.collectionMapper = collectionMapper;
this.addressMapper = addressMapper;
this.machineTagMapper = machineTagMapper;
this.identifierMapper = identifierMapper;
this.contactMapper = contactMapper;
this.metadataMapper = metadataMapper;
}

@Test
Expand Down Expand Up @@ -218,13 +224,30 @@ public void listTest() {
col4.setModifiedBy("test");
collectionMapper.create(col4);

Collection col5 = new Collection();
col5.setKey(UUID.randomUUID());
col5.setCode("c5");
col5.setName("name of fifth collection");
col5.setCreatedBy("test");
col5.setModifiedBy("test");
collectionMapper.create(col5);

MasterSourceMetadata masterSourceMetadata = new MasterSourceMetadata();
masterSourceMetadata.setSource(Source.IH_IRN);
masterSourceMetadata.setKey(123456);
masterSourceMetadata.setSourceId("test-123");
masterSourceMetadata.setCreatedBy("test");
metadataMapper.create(masterSourceMetadata);
collectionMapper.addMasterSourceMetadata(col5.getKey(),masterSourceMetadata.getKey(),MasterSourceType.GRSCICOLL);

Pageable page = PAGE.apply(2, 0L);
List<CollectionDto> dtos =
collectionMapper.list(CollectionSearchParams.builder().page(page).build());
assertEquals(2, dtos.size());

page = PAGE.apply(5, 0L);
assertSearch(CollectionSearchParams.builder().page(page).build(), 4);
assertSearch(CollectionSearchParams.builder().sourceId("test-123").source(Source.IH_IRN).build(),1,col5.getKey());
assertSearch(CollectionSearchParams.builder().page(page).build(), 5);
assertSearch(CollectionSearchParams.builder().code("c1").page(page).build(), 1);
assertSearch(CollectionSearchParams.builder().code("C1").page(page).build(), 1);
assertSearch(CollectionSearchParams.builder().name("n2").page(page).build(), 1);
Expand Down Expand Up @@ -340,7 +363,7 @@ public void listTest() {
.masterSourceType(MasterSourceType.GRSCICOLL)
.page(page)
.build(),
0);
1);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.gbif.api.model.collections.AlternativeCode;
import org.gbif.api.model.collections.Contact;
import org.gbif.api.model.collections.Institution;
import org.gbif.api.model.collections.MasterSourceMetadata;
import org.gbif.api.model.collections.UserId;
import org.gbif.api.model.common.paging.Pageable;
import org.gbif.api.model.registry.Identifier;
Expand All @@ -26,12 +27,14 @@
import org.gbif.api.vocabulary.collections.Discipline;
import org.gbif.api.vocabulary.collections.IdType;
import org.gbif.api.vocabulary.collections.MasterSourceType;
import org.gbif.api.vocabulary.collections.Source;
import org.gbif.registry.database.TestCaseDatabaseInitializer;
import org.gbif.registry.persistence.mapper.IdentifierMapper;
import org.gbif.registry.persistence.mapper.MachineTagMapper;
import org.gbif.registry.persistence.mapper.collections.AddressMapper;
import org.gbif.registry.persistence.mapper.collections.CollectionContactMapper;
import org.gbif.registry.persistence.mapper.collections.InstitutionMapper;
import org.gbif.registry.persistence.mapper.collections.MasterSourceSyncMetadataMapper;
import org.gbif.registry.persistence.mapper.collections.params.InstitutionSearchParams;
import org.gbif.registry.search.test.EsManageServer;
import org.gbif.registry.ws.it.BaseItTest;
Expand Down Expand Up @@ -69,6 +72,7 @@ public class InstitutionMapperIT extends BaseItTest {
private MachineTagMapper machineTagMapper;
private IdentifierMapper identifierMapper;
private CollectionContactMapper contactMapper;
private MasterSourceSyncMetadataMapper metadataMapper;

@Autowired
public InstitutionMapperIT(
Expand All @@ -78,13 +82,15 @@ public InstitutionMapperIT(
IdentifierMapper identifierMapper,
CollectionContactMapper contactMapper,
SimplePrincipalProvider principalProvider,
EsManageServer esServer) {
EsManageServer esServer,
MasterSourceSyncMetadataMapper metadataMapper) {
super(principalProvider, esServer);
this.institutionMapper = institutionMapper;
this.addressMapper = addressMapper;
this.machineTagMapper = machineTagMapper;
this.identifierMapper = identifierMapper;
this.contactMapper = contactMapper;
this.metadataMapper = metadataMapper;
}

@Test
Expand Down Expand Up @@ -208,9 +214,26 @@ public void listTest() {
inst3.setModifiedBy("test");
institutionMapper.create(inst3);

Institution inst4 = new Institution();
inst4.setKey(UUID.randomUUID());
inst4.setCode("i4");
inst4.setName("Name of the forth institution");
inst4.setCreatedBy("test");
inst4.setModifiedBy("test");
institutionMapper.create(inst4);

MasterSourceMetadata masterSourceMetadata = new MasterSourceMetadata();
masterSourceMetadata.setSource(Source.IH_IRN);
masterSourceMetadata.setKey(123456);
masterSourceMetadata.setSourceId("test-123");
masterSourceMetadata.setCreatedBy("test");
metadataMapper.create(masterSourceMetadata);
institutionMapper.addMasterSourceMetadata(inst4.getKey(),masterSourceMetadata.getKey(),MasterSourceType.GRSCICOLL);

Pageable page = PAGE.apply(5, 0L);

assertSearch(InstitutionSearchParams.builder().page(page).build(), 3);
assertSearch(InstitutionSearchParams.builder().sourceId("test-123").source(Source.IH_IRN).build(),1,inst4.getKey());
assertSearch(InstitutionSearchParams.builder().page(page).build(), 4);
assertSearch(InstitutionSearchParams.builder().code("i1").page(page).build(), 1);
assertSearch(InstitutionSearchParams.builder().code("I1").page(page).build(), 1);
assertSearch(InstitutionSearchParams.builder().name("n2").page(page).build(), 1);
Expand Down Expand Up @@ -326,7 +349,7 @@ public void listTest() {
.masterSourceType(MasterSourceType.GRSCICOLL)
.page(page)
.build(),
0);
1);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import org.gbif.api.vocabulary.collections.AccessionStatus;
import org.gbif.api.vocabulary.collections.CollectionContentType;
import org.gbif.api.vocabulary.collections.PreservationType;
import org.gbif.api.vocabulary.collections.Source;

import java.util.List;

Expand All @@ -32,4 +33,6 @@ public class CollectionSearchParams extends SearchParams {
@Nullable List<PreservationType> preservationTypes;
@Nullable AccessionStatus accessionStatus;
@Nullable Boolean personalCollection;
@Nullable String sourceId;
@Nullable Source source;
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import org.gbif.api.vocabulary.collections.Discipline;
import org.gbif.api.vocabulary.collections.InstitutionGovernance;
import org.gbif.api.vocabulary.collections.InstitutionType;
import org.gbif.api.vocabulary.collections.Source;

import java.util.List;

Expand All @@ -31,4 +32,6 @@ public class InstitutionSearchParams extends SearchParams {
@Nullable InstitutionType type;
@Nullable InstitutionGovernance institutionalGovernance;
@Nullable List<Discipline> disciplines;
@Nullable String sourceId;
@Nullable Source source;
}
Loading

0 comments on commit 20fe72d

Please sign in to comment.