Skip to content

Commit

Permalink
HIA-765 - update logic to check if nomis number is provided
Browse files Browse the repository at this point in the history
  • Loading branch information
achimber-moj committed Nov 26, 2024
1 parent 05d75b5 commit 28c7b46
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,24 @@ class GetCellLocationForPersonService(
@Autowired val prisonerOffenderSearchGateway: PrisonerOffenderSearchGateway,
) {
fun execute(hmppsId: String): Response<CellLocation?> {
val personResponse = getPersonService.execute(hmppsId = hmppsId)

val prisonResponse =
personResponse.data?.identifiers?.nomisNumber?.let {
prisonerOffenderSearchGateway.getPrisonOffender(nomsNumber = it)
val prisonResponse = when {
isNomsNumber(hmppsId) -> prisonerOffenderSearchGateway.getPrisonOffender(nomsNumber = hmppsId)
else -> {
val personResponse = getPersonService.execute(hmppsId = hmppsId)

if (personResponse.data == null) {
return Response(
data = CellLocation(),
errors = personResponse.errors
)
}

personResponse.data.identifiers.nomisNumber?.let {
prisonerOffenderSearchGateway.getPrisonOffender(nomsNumber = it)
}
}
}

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

return Response(
data = cellLocation,
errors = personResponse.errors + (prisonResponse?.errors ?: emptyList()),
errors = prisonResponse?.errors ?: emptyList()
)

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,7 @@ class GetPersonService(

fun getPersonFromNomis(nomisNumber: String) = prisonerOffenderSearchGateway.getPrisonOffender(nomisNumber)
}

fun isNomsNumber(id: String?): Boolean {
return id?.matches(Regex("^[A-Z]\\d{4}[A-Z]{2}+$")) == true
}

0 comments on commit 28c7b46

Please sign in to comment.