Skip to content

Commit 92d7ee1

Browse files
author
popey2700
committed
Sorted imageMetaData from new to old
1 parent d77c78a commit 92d7ee1

File tree

3 files changed

+33
-14
lines changed

3 files changed

+33
-14
lines changed

src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/NomisGateway.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class NomisGateway(
4949

5050
return when (result) {
5151
is WebClientWrapperResponse.Success -> {
52-
Response(data = result.data.map { it.toImageMetadata() })
52+
Response(data = result.data.map { it.toImageMetadata() }.sortedByDescending { it.captureDateTime })
5353
}
5454

5555
is WebClientWrapperResponse.Error -> {

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

+4-8
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,10 @@ class GetImageMetadataForPersonService(
1414
) {
1515
fun execute(hmppsId: String): Response<List<ImageMetadata>> {
1616
val responseFromProbationOffenderSearch = probationOffenderSearchGateway.getPerson(hmppsId)
17-
val nomisNumber = responseFromProbationOffenderSearch.data?.identifiers?.nomisNumber
18-
19-
if (nomisNumber == null) {
20-
return Response(
21-
data = emptyList(),
22-
errors = responseFromProbationOffenderSearch.errors,
23-
)
24-
}
17+
val nomisNumber = responseFromProbationOffenderSearch.data?.identifiers?.nomisNumber ?: return Response(
18+
data = emptyList(),
19+
errors = responseFromProbationOffenderSearch.errors,
20+
)
2521

2622
return nomisGateway.getImageMetadataForPerson(nomisNumber)
2723
}

src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetImageMetadataForPersonTest.kt

+28-5
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@ class GetImageMetadataForPersonTest(
4747
"imageView": "FACE",
4848
"imageOrientation": "FRONT",
4949
"imageType": "OFF_BKG"
50+
},
51+
{
52+
"imageId": 24299,
53+
"active": true,
54+
"captureDateTime": "2010-08-27T16:35:00",
55+
"imageView": "FACE",
56+
"imageOrientation": "FRONT",
57+
"imageType": "OFF_BKG"
5058
}
5159
]
5260
""",
@@ -69,13 +77,28 @@ class GetImageMetadataForPersonTest(
6977
it("returns image metadata for the matching person ID") {
7078
val response = nomisGateway.getImageMetadataForPerson(offenderNo)
7179

72-
response.data.first().active.shouldBe(true)
73-
response.data.first().captureDateTime.shouldBe(LocalDateTime.parse("2008-08-27T16:35:00"))
74-
response.data.first().view.shouldBe("FACE")
75-
response.data.first().orientation.shouldBe("FRONT")
76-
response.data.first().type.shouldBe("OFF_BKG")
80+
response.data[0].id.shouldBe(24299)
81+
response.data[0].active.shouldBe(true)
82+
response.data[0].captureDateTime.shouldBe(LocalDateTime.parse("2010-08-27T16:35:00"))
83+
response.data[0].view.shouldBe("FACE")
84+
response.data[0].orientation.shouldBe("FRONT")
85+
response.data[0].type.shouldBe("OFF_BKG")
86+
87+
response.data[1].id.shouldBe(24213)
88+
response.data[1].active.shouldBe(true)
89+
response.data[1].captureDateTime.shouldBe(LocalDateTime.parse("2008-08-27T16:35:00"))
90+
response.data[1].view.shouldBe("FACE")
91+
response.data[1].orientation.shouldBe("FRONT")
92+
response.data[1].type.shouldBe("OFF_BKG")
7793
}
7894

95+
it("returns sorted by newest date image metadata for the matching person ID") {
96+
val response = nomisGateway.getImageMetadataForPerson(offenderNo)
97+
98+
response.data[0].captureDateTime.shouldBe(LocalDateTime.parse("2010-08-27T16:35:00"))
99+
response.data[1].captureDateTime.shouldBe(LocalDateTime.parse("2008-08-27T16:35:00"))
100+
}
101+
79102
it("returns a person without image metadata when no images are found") {
80103
nomisApiMockServer.stubNomisApiResponse(imagePath, "[]")
81104

0 commit comments

Comments
 (0)