From d4af1ff297ed699e8ace4e708d674ce51ceb5d1d Mon Sep 17 00:00:00 2001 From: Marcus Aspin Date: Tue, 25 Jun 2024 10:26:36 +0100 Subject: [PATCH] PI-2304 Fix isNew check on offence code creation (#3943) Now takes into account new offences where we already have a r_detailed_offence record. --- .../gov/justice/digital/hmpps/messaging/Handler.kt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/projects/manage-offences-and-delius/src/main/kotlin/uk/gov/justice/digital/hmpps/messaging/Handler.kt b/projects/manage-offences-and-delius/src/main/kotlin/uk/gov/justice/digital/hmpps/messaging/Handler.kt index 5fe480c035..24b170d7fc 100644 --- a/projects/manage-offences-and-delius/src/main/kotlin/uk/gov/justice/digital/hmpps/messaging/Handler.kt +++ b/projects/manage-offences-and-delius/src/main/kotlin/uk/gov/justice/digital/hmpps/messaging/Handler.kt @@ -49,10 +49,9 @@ class Handler( return } - val isNew = mergeDetailedOffence(offence) - if (featureFlags.enabled(FF_CREATE_OFFENCE)) { - mergeReferenceOffence(offence) - } + val newDetailedOffence = mergeDetailedOffence(offence) + val newReferenceOffence = mergeReferenceOffence(offence) + val isNew = newDetailedOffence || newReferenceOffence telemetryService.trackEvent(if (isNew) "OffenceCodeCreated" else "OffenceCodeUpdated", offence.telemetry) } @@ -63,12 +62,13 @@ class Handler( return existingEntity == null } - private fun mergeReferenceOffence(offence: Offence) { - if (offence.homeOfficeCode == null) return + private fun mergeReferenceOffence(offence: Offence): Boolean { + if (!featureFlags.enabled(FF_CREATE_OFFENCE) || offence.homeOfficeCode == null) return false val existingEntity = offenceRepository.findByCode(offence.homeOfficeCode!!) - if (existingEntity != null && !featureFlags.enabled(FF_UPDATE_OFFENCE)) return + if (existingEntity != null && !featureFlags.enabled(FF_UPDATE_OFFENCE)) return false val highLevelOffence = offenceRepository.getByCode(offence.highLevelCode!!) offenceRepository.save(existingEntity.mergeWith(offence.toReferenceOffence(highLevelOffence))) + return existingEntity == null } private fun Offence.toDetailedOffence() = DetailedOffence(