Skip to content

Commit 28c7b46

Browse files
committed
HIA-765 - update logic to check if nomis number is provided
1 parent 05d75b5 commit 28c7b46

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetCellLocationForPersonService.kt

+18-5
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,24 @@ class GetCellLocationForPersonService(
1212
@Autowired val prisonerOffenderSearchGateway: PrisonerOffenderSearchGateway,
1313
) {
1414
fun execute(hmppsId: String): Response<CellLocation?> {
15-
val personResponse = getPersonService.execute(hmppsId = hmppsId)
1615

17-
val prisonResponse =
18-
personResponse.data?.identifiers?.nomisNumber?.let {
19-
prisonerOffenderSearchGateway.getPrisonOffender(nomsNumber = it)
16+
val prisonResponse = when {
17+
isNomsNumber(hmppsId) -> prisonerOffenderSearchGateway.getPrisonOffender(nomsNumber = hmppsId)
18+
else -> {
19+
val personResponse = getPersonService.execute(hmppsId = hmppsId)
20+
21+
if (personResponse.data == null) {
22+
return Response(
23+
data = CellLocation(),
24+
errors = personResponse.errors
25+
)
26+
}
27+
28+
personResponse.data.identifiers.nomisNumber?.let {
29+
prisonerOffenderSearchGateway.getPrisonOffender(nomsNumber = it)
30+
}
2031
}
32+
}
2133

2234
val cellLocation =
2335
if (prisonResponse?.data?.inOutStatus == "IN") {
@@ -28,7 +40,8 @@ class GetCellLocationForPersonService(
2840

2941
return Response(
3042
data = cellLocation,
31-
errors = personResponse.errors + (prisonResponse?.errors ?: emptyList()),
43+
errors = prisonResponse?.errors ?: emptyList()
3244
)
45+
3346
}
3447
}

src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetPersonService.kt

+4
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,7 @@ class GetPersonService(
106106

107107
fun getPersonFromNomis(nomisNumber: String) = prisonerOffenderSearchGateway.getPrisonOffender(nomisNumber)
108108
}
109+
110+
fun isNomsNumber(id: String?): Boolean {
111+
return id?.matches(Regex("^[A-Z]\\d{4}[A-Z]{2}+$")) == true
112+
}

0 commit comments

Comments
 (0)