Skip to content

Commit d21613d

Browse files
leventegal-sheLevente Gal
andauthored
#13206 use house number too for searching facility by address (#13264)
* #13206 use souse number too for searching facility by address * #13206 use souse number too for searching facility by address - remove unused variable declarations in test --------- Co-authored-by: Levente Gal <levente.gal.ext@vitagroup.ag>
1 parent 16f6e77 commit d21613d

File tree

4 files changed

+19
-10
lines changed

4 files changed

+19
-10
lines changed

sormas-api/src/main/java/de/symeda/sormas/api/infrastructure/facility/FacilityFacade.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ List<FacilityReferenceDto> getByNameAndType(
6464
FacilityType type,
6565
boolean includeArchivedEntities);
6666

67-
FacilityReferenceDto getByAddress(String street, String postalCode, String city);
67+
FacilityReferenceDto getByAddress(String street, String houseNumber, String postalCode, String city);
6868

6969
List<FacilityReferenceDto> getLaboratoriesByName(String name, boolean includeArchivedEntities);
7070

sormas-backend/src/main/java/de/symeda/sormas/backend/infrastructure/facility/FacilityFacadeEjb.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,9 +333,9 @@ public List<FacilityReferenceDto> getByNameAndType(
333333
}
334334

335335
@Override
336-
public FacilityReferenceDto getByAddress(String street, String postalCode, String city) {
336+
public FacilityReferenceDto getByAddress(String street, String houseNumber, String postalCode, String city) {
337337

338-
return toReferenceDto(service.getByAddress(street, postalCode, city));
338+
return toReferenceDto(service.getByAddress(street, houseNumber, postalCode, city));
339339
}
340340

341341
@Override

sormas-backend/src/main/java/de/symeda/sormas/backend/infrastructure/facility/FacilityService.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package de.symeda.sormas.backend.infrastructure.facility;
1717

1818
import java.util.List;
19+
import java.util.Optional;
1920
import java.util.function.BiFunction;
2021

2122
import javax.ejb.EJB;
@@ -200,7 +201,7 @@ public List<Facility> getFacilitiesByNameAndType(
200201
return em.createQuery(cq).getResultList();
201202
}
202203

203-
public Facility getByAddress(String street, String postalCode, String city) {
204+
public Facility getByAddress(String street, String houseNumber, String postalCode, String city) {
204205

205206
if (StringUtils.isAnyBlank(street, postalCode, city)) {
206207
return null;
@@ -213,6 +214,9 @@ public Facility getByAddress(String street, String postalCode, String city) {
213214
Predicate filter = cb.and(
214215
createBasicFilter(cb, from),
215216
cb.equal(cb.lower(cb.trim(from.get(Facility.STREET))), street.trim().toLowerCase()),
217+
cb.equal(
218+
cb.lower(cb.trim(from.get(Facility.HOUSE_NUMBER))),
219+
Optional.ofNullable(houseNumber).map(s -> s.trim().toLowerCase()).orElse(null)),
216220
cb.equal(cb.lower(cb.trim(from.get(Facility.POSTAL_CODE))), postalCode.trim().toLowerCase()),
217221
cb.equal(cb.lower(cb.trim(from.get(Facility.CITY))), city.trim().toLowerCase()));
218222

sormas-backend/src/test/java/de/symeda/sormas/backend/infrastructure/facility/FacilityFacadeEjbTest.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -228,29 +228,34 @@ public void testGetByAddress() {
228228
RDCF rdcf = creator.createRDCF();
229229
FacilityDto fac1 = creator.createFacility("Fac1", rdcf.region, rdcf.district, facility -> {
230230
facility.setStreet("Street1");
231+
facility.setHouseNumber("1");
231232
facility.setPostalCode("PostalCode1");
232233
facility.setCity("City1");
233234
});
234-
FacilityDto fac2 = creator.createFacility("Fac2", rdcf.region, rdcf.district, facility -> {
235+
creator.createFacility("Fac2", rdcf.region, rdcf.district, facility -> {
235236
facility.setStreet("Street2");
237+
facility.setHouseNumber("2");
236238
facility.setPostalCode("PostalCode2");
237239
facility.setCity("City2");
238240
});
239241
FacilityDto fac3 = creator.createFacility("Fac3", rdcf.region, rdcf.district, facility -> {
240242
facility.setStreet("Street3");
243+
facility.setHouseNumber("3");
241244
facility.setPostalCode("PostalCode2");
242245
facility.setCity("City2");
243246
});
244-
FacilityDto fac4 = creator.createFacility("Fac4", rdcf.region, rdcf.district, facility -> {
247+
creator.createFacility("Fac4", rdcf.region, rdcf.district, facility -> {
245248
facility.setStreet("Street2");
249+
facility.setHouseNumber("4");
246250
facility.setPostalCode("PostalCode2");
247251
facility.setCity("City2");
248252
});
249253

250254
FacilityFacade facade = getFacilityFacade();
251-
assertEquals(fac1.getUuid(), facade.getByAddress("Street1", "PostalCode1", "City1").getUuid());
252-
assertEquals(fac3.getUuid(), facade.getByAddress("Street3", "PostalCode2", "City2").getUuid());
253-
assertNull(facade.getByAddress("Street5", "PostalCode5", "City5"));
254-
assertNull(facade.getByAddress("Street2", "PostalCode2", "City2"));
255+
assertEquals(fac1.getUuid(), facade.getByAddress("Street1", "1", "PostalCode1", "City1").getUuid());
256+
assertEquals(fac3.getUuid(), facade.getByAddress("Street3", "3", "PostalCode2", "City2").getUuid());
257+
assertNull(facade.getByAddress("Street5", "", "PostalCode5", "City5"));
258+
assertNull(facade.getByAddress("Street2", null, "PostalCode2", "City2"));
259+
assertNull(facade.getByAddress("Street2", "1", "PostalCode2", "City2"));
255260
}
256261
}

0 commit comments

Comments
 (0)