Skip to content

Commit dd330c5

Browse files
Add new fields to CreateVisitRequest and correct tests (#773)
1 parent 3f15a28 commit dd330c5

File tree

5 files changed

+30
-11
lines changed

5 files changed

+30
-11
lines changed

src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/models/hmpps/CreateVisitRequest.kt

+10-4
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ data class CreateVisitRequest(
2323
@Schema(description = "Visit Type", example = "SOCIAL", required = true)
2424
@field:NotNull
2525
val visitType: VisitType,
26-
@Schema(description = "Visit Status", example = "BOOKED", required = true)
27-
@field:NotNull
28-
val visitStatus: VisitStatus,
2926
@Schema(description = "Visit Restriction", example = "OPEN", required = true)
3027
@field:NotNull
3128
val visitRestriction: VisitRestriction,
@@ -35,10 +32,17 @@ data class CreateVisitRequest(
3532
@Schema(description = "The finishing date and time of the visit", example = "2018-12-01T13:45:00", required = true)
3633
@field:NotNull
3734
val endTimestamp: LocalDateTime,
35+
@Schema(description = "Visit Notes")
36+
val visitNotes: List<VisitNotes> = emptyList(),
37+
@Schema(description = "Contact associated with the visit", required = true)
38+
@field:NotNull
39+
val visitContact: VisitContact,
3840
@Schema(description = "The date and time of when the visit was created in NEXUS", example = "2018-12-01T13:45:00", required = false)
3941
val createDateTime: LocalDateTime? = null,
4042
@Schema(description = "List of visitors associated with the visit", required = false)
4143
val visitors: Set<@Valid Visitor>? = setOf(),
44+
@Schema(description = "Additional support associated with the visit")
45+
val visitorSupport: VisitorSupport? = null,
4246
@Schema(description = "Username for user who actioned this request", required = false)
4347
val actionedBy: String?,
4448
) {
@@ -56,12 +60,14 @@ data class CreateVisitRequest(
5660
"clientVisitReference" to this.clientVisitReference,
5761
"visitRoom" to this.visitRoom,
5862
"visitType" to this.visitType,
59-
"visitStatus" to this.visitStatus,
6063
"visitRestriction" to this.visitRestriction,
6164
"startTimestamp" to this.startTimestamp.toString(),
6265
"endTimestamp" to this.endTimestamp.toString(),
66+
"visitNotes" to this.visitNotes.map { mapOf("type" to it.type, "text" to it.text) },
67+
"visitContact" to mapOf("name" to this.visitContact.name, "telephone" to this.visitContact.telephone, "email" to this.visitContact.email),
6368
"createDateTime" to this.createDateTime.toString(),
6469
"visitors" to this.visitors?.map { mapOf("nomisPersonId" to it.nomisPersonId, "visitContact" to it.visitContact) },
70+
"visitorSupport" to this.visitorSupport?.let { mapOf("description" to this.visitorSupport.description) },
6571
"actionedBy" to this.actionedBy,
6672
)
6773
}

src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/controllers/v1/VisitsControllerTest.kt

+4-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi
2525
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError
2626
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Visit
2727
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitContact
28+
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitNotes
2829
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitRestriction
29-
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitStatus
3030
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitType
3131
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Visitor
3232
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitorSupport
@@ -155,12 +155,14 @@ class VisitsControllerTest(
155155
clientVisitReference = "123456",
156156
visitRoom = "A1",
157157
visitType = VisitType.SOCIAL,
158-
visitStatus = VisitStatus.BOOKED,
159158
visitRestriction = VisitRestriction.OPEN,
160159
startTimestamp = LocalDateTime.parse(timestamp),
161160
endTimestamp = LocalDateTime.parse(timestamp),
161+
visitNotes = listOf(VisitNotes(type = "VISITOR_CONCERN", text = "Visitor is concerned their mother in law is coming!")),
162+
visitContact = VisitContact(name = "John Smith", telephone = "0987654321", email = "john.smith@example.com"),
162163
createDateTime = LocalDateTime.parse(timestamp),
163164
visitors = setOf(Visitor(nomisPersonId = 3L, visitContact = true)),
165+
visitorSupport = VisitorSupport(description = "Visually impaired assistance"),
164166
actionedBy = clientName,
165167
)
166168

src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/integration/VisitsIntegrationTest.kt

+6-2
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@ import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.CancelOutco
1717
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.CancelVisitRequest
1818
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.CreateVisitRequest
1919
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.OutcomeStatus
20+
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitContact
21+
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitNotes
2022
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitRestriction
21-
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitStatus
2223
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitType
2324
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Visitor
25+
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitorSupport
2426
import uk.gov.justice.hmpps.sqs.HmppsQueueService
2527
import java.time.LocalDateTime
2628

@@ -104,12 +106,14 @@ class VisitsIntegrationTest : IntegrationTestBase() {
104106
clientVisitReference = "123456",
105107
visitRoom = "A1",
106108
visitType = VisitType.SOCIAL,
107-
visitStatus = VisitStatus.BOOKED,
108109
visitRestriction = VisitRestriction.OPEN,
109110
startTimestamp = LocalDateTime.parse(timestamp),
110111
endTimestamp = LocalDateTime.parse(timestamp),
112+
visitNotes = listOf(VisitNotes(type = "VISITOR_CONCERN", text = "Visitor is concerned their mother in law is coming!")),
113+
visitContact = VisitContact(name = "John Smith", telephone = "0987654321", email = "john.smith@example.com"),
111114
createDateTime = LocalDateTime.parse(timestamp),
112115
visitors = setOf(Visitor(nomisPersonId = 3L, visitContact = true)),
116+
visitorSupport = VisitorSupport(description = "Visually impaired assistance"),
113117
actionedBy = clientName,
114118
)
115119

src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/models/hmpps/CreateVisitRequestTest.kt

+6-1
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,14 @@ class CreateVisitRequestTest :
2020
clientVisitReference = "123456",
2121
visitRoom = "A1",
2222
visitType = VisitType.SOCIAL,
23-
visitStatus = VisitStatus.BOOKED,
2423
visitRestriction = VisitRestriction.OPEN,
2524
startTimestamp = LocalDateTime.parse(timestamp),
2625
endTimestamp = LocalDateTime.parse(timestamp),
26+
visitNotes = listOf(VisitNotes(type = "VISITOR_CONCERN", text = "Visitor is concerned their mother in law is coming!")),
27+
visitContact = VisitContact(name = "John Smith", telephone = "0987654321", email = "john.smith@example.com"),
2728
createDateTime = LocalDateTime.parse(timestamp),
2829
visitors = setOf(Visitor(nomisPersonId = 3L, visitContact = true)),
30+
visitorSupport = VisitorSupport(description = "Visually impaired assistance"),
2931
actionedBy = "test-consumer",
3032
)
3133

@@ -38,8 +40,11 @@ class CreateVisitRequestTest :
3840
hmppsMessageString.shouldContainJsonKeyValue("$.messageAttributes.prisonerId", createVisitRequest.prisonerId)
3941
hmppsMessageString.shouldContainJsonKeyValue("$.messageAttributes.startTimestamp", timestamp)
4042
hmppsMessageString.shouldContainJsonKeyValue("$.messageAttributes.endTimestamp", timestamp)
43+
hmppsMessageString.shouldContainJsonKeyValue("$.messageAttributes.visitNotes[0].type", createVisitRequest.visitNotes.first().type)
44+
hmppsMessageString.shouldContainJsonKeyValue("$.messageAttributes.visitContact.name", createVisitRequest.visitContact.name)
4145
hmppsMessageString.shouldContainJsonKeyValue("$.messageAttributes.createDateTime", timestamp)
4246
hmppsMessageString.shouldContainJsonKeyValue("$.messageAttributes.visitors.[0].nomisPersonId", createVisitRequest.visitors!!.first().nomisPersonId)
47+
hmppsMessageString.shouldContainJsonKeyValue("$.messageAttributes.visitorSupport.description", createVisitRequest.visitorSupport!!.description)
4348
}
4449
},
4550
)

src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/VisitQueueServiceTest.kt

+4-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi
3131
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError
3232
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Visit
3333
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitContact
34+
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitNotes
3435
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitRestriction
35-
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitStatus
3636
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitType
3737
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Visitor
3838
import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.VisitorSupport
@@ -102,12 +102,14 @@ internal class VisitQueueServiceTest(
102102
clientVisitReference = "123456",
103103
visitRoom = "A1",
104104
visitType = VisitType.SOCIAL,
105-
visitStatus = VisitStatus.BOOKED,
106105
visitRestriction = VisitRestriction.OPEN,
107106
startTimestamp = LocalDateTime.parse("2020-12-04T10:42:43"),
108107
endTimestamp = LocalDateTime.parse("2020-12-04T10:42:43"),
108+
visitNotes = listOf(VisitNotes(type = "VISITOR_CONCERN", text = "Visitor is concerned their mother in law is coming!")),
109+
visitContact = VisitContact(name = "John Smith", telephone = "0987654321", email = "john.smith@example.com"),
109110
createDateTime = LocalDateTime.parse("2020-12-04T10:42:43"),
110111
visitors = setOf(Visitor(nomisPersonId = 3L, visitContact = true)),
112+
visitorSupport = VisitorSupport(description = "Visually impaired assistance"),
111113
actionedBy = "test-consumer",
112114
)
113115
val who = "client-name"

0 commit comments

Comments
 (0)