Skip to content

Commit

Permalink
Merge pull request #578 from opensrp/v2-add-identifier-n-serverversio…
Browse files Browse the repository at this point in the history
…n-to-PractitionerSearchBean

order Practitioners by serverversion
  • Loading branch information
hilpitome authored Jun 24, 2022
2 parents d186eff + b90fbed commit c06fb89
Show file tree
Hide file tree
Showing 5 changed files with 65 additions and 19 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<artifactId>opensrp-server-core</artifactId>
<packaging>jar</packaging>
<version>2.14.0-SNAPSHOT</version>
<version>2.14.1-SNAPSHOT</version>
<name>opensrp-server-core</name>
<description>OpenSRP Server Core module</description>
<url>https://github.com/OpenSRP/opensrp-server-core</url>
Expand All @@ -21,7 +21,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<nexus-staging-maven-plugin.version>1.5.1</nexus-staging-maven-plugin.version>

<opensrp.api.version>1.1.2-SNAPSHOT</opensrp.api.version>
<opensrp.api.version>1.1.3-SNAPSHOT</opensrp.api.version>
<opensrp.interface.version>2.0.1-SNAPSHOT</opensrp.interface.version>
<opensrp.plan.evaluator.version>1.6.7-SNAPSHOT</opensrp.plan.evaluator.version>
<jackson.version>2.12.6</jackson.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ public Practitioner getPractitionerByUsername(String username) {

@Override
public List<Practitioner> getAllPractitioners(PractitionerSearchBean practitionerSearchBean) {
Pair<Integer, Integer> pageSizeAndOffset = RepositoryUtil.getPageSizeAndOffset(practitionerSearchBean);
Pair<Integer, Integer> pageSizeAndOffset = getPageSizeAndOffset(practitionerSearchBean);
PractitionerExample practitionerExample = new PractitionerExample();
practitionerExample.createCriteria().andDateDeletedIsNull();
if(practitionerSearchBean.getOrderByFieldName() != null && practitionerSearchBean.getOrderByType() != null) {
Expand All @@ -205,8 +205,8 @@ public List<Practitioner> getAllPractitioners(PractitionerSearchBean practitione

@Override
public List<Practitioner> getAllPractitionersByIdentifiers(List<String> practitionerIdentifiers) {
PractitionerSearchBean practitionerSearchBean = new PractitionerSearchBean(null);
Pair<Integer, Integer> pageSizeAndOffset = RepositoryUtil.getPageSizeAndOffset(practitionerSearchBean);
PractitionerSearchBean practitionerSearchBean = new PractitionerSearchBean();
Pair<Integer, Integer> pageSizeAndOffset = getPageSizeAndOffset(practitionerSearchBean);
PractitionerExample practitionerExample = new PractitionerExample();
practitionerExample.createCriteria().andDateDeletedIsNull().andIdentifierIn(practitionerIdentifiers);
List<org.opensrp.domain.postgres.Practitioner> pgPractitionerList = practitionerMapper.selectMany(practitionerExample, pageSizeAndOffset.getRight(), pageSizeAndOffset.getLeft());
Expand Down Expand Up @@ -295,4 +295,8 @@ public Practitioner getPractitionerByIdentifier(String practitionerIdentifier) {
return null;
}
}

private Pair<Integer, Integer> getPageSizeAndOffset(PractitionerSearchBean practitionerSearchBean) {
return RepositoryUtil.getPageSizeAndOffset(practitionerSearchBean.getPageNumber(), practitionerSearchBean.getPageSize());
}
}
58 changes: 51 additions & 7 deletions src/main/java/org/opensrp/search/PractitionerSearchBean.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,25 @@
package org.opensrp.search;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.experimental.SuperBuilder;

@Data
@AllArgsConstructor
@SuperBuilder
public class PractitionerSearchBean extends BaseSearchBean {
public class PractitionerSearchBean {


private Integer pageNumber = 0;

private Integer pageSize = 0;

private FieldName orderByFieldName;

private OrderByType orderByType;

public enum OrderByType {
ASC, DESC
}


public enum FieldName {
id, identifier, server_version
}

private Long serverVersion;

Expand All @@ -18,4 +30,36 @@ public Long getServerVersion() {
public void setServerVersion(Long serverVersion) {
this.serverVersion = serverVersion;
}

public Integer getPageNumber() {
return pageNumber;
}

public void setPageNumber(Integer pageNumber) {
this.pageNumber = pageNumber;
}

public Integer getPageSize() {
return pageSize;
}

public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}

public FieldName getOrderByFieldName() {
return orderByFieldName;
}

public void setOrderByFieldName(FieldName orderByFieldName) {
this.orderByFieldName = orderByFieldName;
}

public OrderByType getOrderByType() {
return orderByType;
}

public void setOrderByType(OrderByType orderByType) {
this.orderByType = orderByType;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import org.junit.Test;
import org.smartregister.domain.Practitioner;
import org.opensrp.repository.PractitionerRepository;
import org.opensrp.search.BaseSearchBean;
import org.opensrp.search.PractitionerSearchBean;
import org.springframework.beans.factory.annotation.Autowired;

Expand Down Expand Up @@ -341,18 +340,17 @@ public void testGetAllPractitioners() {
practitionerRepository.add(practitioner1);
Practitioner practitioner2 = initTestPractitioner2();
practitionerRepository.add(practitioner2);
PractitionerSearchBean practitionerSearchBean = PractitionerSearchBean.builder().
orderByType(BaseSearchBean.OrderByType.DESC).
orderByFieldName(BaseSearchBean.FieldName.id).build();
PractitionerSearchBean practitionerSearchBean = new PractitionerSearchBean();
practitionerSearchBean.setOrderByFieldName(PractitionerSearchBean.FieldName.id);
practitionerSearchBean.setOrderByType(PractitionerSearchBean.OrderByType.DESC);
practitionerSearchBean.setServerVersion(1l);
List<Practitioner> practitioners = practitionerRepository.getAllPractitioners(practitionerSearchBean);
assertNotNull(practitioners);
assertEquals(2,practitioners.size());
assertEquals("practitioner-2-identifier",practitioners.get(0).getIdentifier());
assertEquals("practitioner-1-identifier",practitioners.get(1).getIdentifier());

practitionerSearchBean = PractitionerSearchBean.builder().orderByType(BaseSearchBean.OrderByType.ASC).
orderByFieldName(BaseSearchBean.FieldName.id).build();
practitionerSearchBean.setOrderByType(PractitionerSearchBean.OrderByType.ASC);
practitionerSearchBean.setServerVersion(1l);
practitioners = practitionerRepository.getAllPractitioners(practitionerSearchBean);
assertNotNull(practitioners);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public void testGetAllPractitioners() {
expectedPractitioners.add(initTestPractitioner());
when(practitionerRepository.getAllPractitioners(any(PractitionerSearchBean.class))).thenReturn(expectedPractitioners);

PractitionerSearchBean practitionerSearchBean = new PractitionerSearchBean(0L);
PractitionerSearchBean practitionerSearchBean = new PractitionerSearchBean();
List<Practitioner> actualPractitioners = practitionerService.getAllPractitioners(practitionerSearchBean);
verify(practitionerRepository).getAllPractitioners(practitionerSearchBean);
assertEquals(1, actualPractitioners.size());
Expand Down

0 comments on commit c06fb89

Please sign in to comment.