From 3d30528fa4d55b5cbadf03f8baad69999559fa0c Mon Sep 17 00:00:00 2001 From: stevomcallister Date: Mon, 20 Jan 2025 14:48:46 +0000 Subject: [PATCH 1/2] test commit --- .../models/hmpps/InductionSchedule.kt | 2 +- .../services/GetInductionScheduleForPersonService.kt | 12 +++++++++++- .../hmppsintegrationapi/services/GetPersonService.kt | 10 +++++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/models/hmpps/InductionSchedule.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/models/hmpps/InductionSchedule.kt index e1b894f1a..64891f7c1 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/models/hmpps/InductionSchedule.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/models/hmpps/InductionSchedule.kt @@ -123,7 +123,7 @@ class InductionScheduleDeserializer : JsonDeserializer() { val inductionPerformedBy = node["inductionPerformedBy"]?.takeUnless { it.isNull }?.asText() val inductionPerformedAt = node["inductionPerformedAt"]?.takeUnless { it.isNull }?.asText()?.let { LocalDate.parse(it) } val version = node["version"]?.asInt() - val exemptionReason = node["exemptionReason"]?.asText() + val exemptionReason = node["exemptionReason"]?.takeUnless { it.isNull }?.asText() return InductionSchedule( deadlineDate = deadlineDate, diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetInductionScheduleForPersonService.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetInductionScheduleForPersonService.kt index a8dd929b5..411e3bc53 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetInductionScheduleForPersonService.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetInductionScheduleForPersonService.kt @@ -15,6 +15,11 @@ class GetInductionScheduleForPersonService( fun execute(hmppsId: String): Response { val response = getPersonService.getNomisNumber(hmppsId = hmppsId) + //not a valid person + if(response.errors.isNotEmpty()) { + return Response(InductionSchedule(), response.errors) + } + response.data?.nomisNumber?.let { return plpGateway.getInductionSchedule(it) } @@ -23,10 +28,15 @@ class GetInductionScheduleForPersonService( fun getHistory(hmppsId: String): Response { val response = getPersonService.getNomisNumber(hmppsId = hmppsId) - + //not a valid person + if(response.errors.isNotEmpty()) { + return Response(InductionSchedules(listOf()), response.errors) + } + //found data will return it response.data?.nomisNumber?.let { return plpGateway.getInductionScheduleHistory(it) } + //no data found return an empty list return Response(InductionSchedules(listOf()), response.errors) } } diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetPersonService.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetPersonService.kt index 129dac593..575fce842 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetPersonService.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetPersonService.kt @@ -4,6 +4,7 @@ import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.PrisonerOffenderSearchGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.ProbationOffenderSearchGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.HmppsId import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.NomisNumber import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.OffenderSearchResponse import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Person @@ -51,7 +52,14 @@ class GetPersonService( */ fun getNomisNumber(hmppsId: String): Response = when (identifyHmppsId(hmppsId)) { - IdentifierType.NOMS -> Response(data = NomisNumber(hmppsId)) + IdentifierType.NOMS -> { + val prisonerResponse = getPersonFromNomis(hmppsId.uppercase()) + val nomisNumber = prisonerResponse.data?.prisonerNumber + Response( + data = NomisNumber(nomisNumber), + errors = prisonerResponse.errors, + ) + } IdentifierType.CRN -> { val personFromProbationOffenderSearch = probationOffenderSearchGateway.getPerson(id = hmppsId) From 568894493c545842db489bb47c830b8276155385 Mon Sep 17 00:00:00 2001 From: stevomcallister Date: Mon, 20 Jan 2025 14:51:30 +0000 Subject: [PATCH 2/2] linting --- .../services/GetInductionScheduleForPersonService.kt | 12 ++++++------ .../hmppsintegrationapi/services/GetPersonService.kt | 1 - 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetInductionScheduleForPersonService.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetInductionScheduleForPersonService.kt index 411e3bc53..84ad01222 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetInductionScheduleForPersonService.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetInductionScheduleForPersonService.kt @@ -15,8 +15,8 @@ class GetInductionScheduleForPersonService( fun execute(hmppsId: String): Response { val response = getPersonService.getNomisNumber(hmppsId = hmppsId) - //not a valid person - if(response.errors.isNotEmpty()) { + // not a valid person + if (response.errors.isNotEmpty()) { return Response(InductionSchedule(), response.errors) } @@ -28,15 +28,15 @@ class GetInductionScheduleForPersonService( fun getHistory(hmppsId: String): Response { val response = getPersonService.getNomisNumber(hmppsId = hmppsId) - //not a valid person - if(response.errors.isNotEmpty()) { + // not a valid person + if (response.errors.isNotEmpty()) { return Response(InductionSchedules(listOf()), response.errors) } - //found data will return it + // found data will return it response.data?.nomisNumber?.let { return plpGateway.getInductionScheduleHistory(it) } - //no data found return an empty list + // no data found return an empty list return Response(InductionSchedules(listOf()), response.errors) } } diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetPersonService.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetPersonService.kt index 575fce842..707c0d546 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetPersonService.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/GetPersonService.kt @@ -4,7 +4,6 @@ import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.PrisonerOffenderSearchGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.ProbationOffenderSearchGateway -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.HmppsId import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.NomisNumber import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.OffenderSearchResponse import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Person