Skip to content

Commit

Permalink
MAN-309 - add new page
Browse files Browse the repository at this point in the history
  • Loading branch information
achimber-moj committed Jan 28, 2025
1 parent a3fe731 commit e1a6615
Show file tree
Hide file tree
Showing 7 changed files with 109 additions and 3 deletions.
5 changes: 5 additions & 0 deletions server/data/masApiClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { CaseAccess, UserAccess } from './model/caseAccess'
import { LicenceConditionNoteDetails } from './model/licenceConditionNoteDetails'
import { AppointmentRequestBody } from '../@types'
import { RequirementNoteDetails } from './model/requirementNoteDetails'
import { PreviousOrderDetail } from './model/previousOrderDetail'

export default class MasApiClient extends RestClient {
constructor(token: string) {
Expand Down Expand Up @@ -50,6 +51,10 @@ export default class MasApiClient extends RestClient {
return this.get({ path: `/sentence/${crn}/previous-orders`, handle404: false })
}

async getSentencePreviousOrder(crn: string, eventNumber: string): Promise<PreviousOrderDetail | null> {
return this.get({ path: `/sentence/${crn}/previous-orders/${eventNumber}`, handle404: false })
}

async getSentenceOffences(crn: string, eventNumber: string): Promise<Offences | null> {
return this.get({ path: `/sentence/${crn}/offences/${eventNumber}`, handle404: false })
}
Expand Down
7 changes: 7 additions & 0 deletions server/data/model/previousOrderDetail.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { Name } from './common'
import { Sentence } from './sentenceDetails'

export interface PreviousOrderDetail {
name: Name
sentence: Sentence
}
1 change: 1 addition & 0 deletions server/data/model/previousOrderHistory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ export interface PreviousOrderHistory {
}

export interface PreviousOrder {
eventNumber: string
title: string
description: string
terminationDate: string
Expand Down
23 changes: 23 additions & 0 deletions server/routes/sentence.ts
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,29 @@ export default function sentenceRoutes(router: Router, { hmppsAuthClient }: Serv
})
})

get('/case/:crn/sentence/previous-orders/:eventNumber', async (req, res, _next) => {
const { crn, eventNumber } = req.params
const token = await hmppsAuthClient.getSystemClientToken(res.locals.user.username)

await auditService.sendAuditMessage({
action: 'VIEW_MAS_SENTENCE_PREVIOUS_ORDER',
who: res.locals.user.username,
subjectId: crn,
subjectType: 'CRN',
correlationId: v4(),
service: 'hmpps-manage-people-on-probation-ui',
})

const masClient = new MasApiClient(token)

const previousOrderDetail = await masClient.getSentencePreviousOrder(crn, eventNumber)

res.render('pages/sentence/previous-order', {
previousOrderDetail,
crn,
})
})

get('/case/:crn/sentence/offences/:eventNumber', async (req, res, _next) => {
const { crn, eventNumber } = req.params
const token = await hmppsAuthClient.getSystemClientToken(res.locals.user.username)
Expand Down
26 changes: 26 additions & 0 deletions server/views/pages/sentence/previous-order.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{% extends "../../partials/layout.njk" %}
{% set headerPersonName = previousOrderHistory.name.forename + ' ' + previousOrderHistory.name.surname %}

{% block beforeContent %}
{{ govukBreadcrumbs({
items: [
{
text: "My cases",
href: "/case"
},
{
text: headerPersonName,
href: "/case/" + crn,
attributes: { "data-ai-id": "breadcrumbPersonNameLink" }
},
{
text: "Sentence",
href: "/case/" + crn + "/sentence"
},
{
text: "Previous Orders",
href: "/case/" + crn + "/sentence/previous-orders"
}
]
}) }}
{% endblock %}
2 changes: 1 addition & 1 deletion server/views/pages/sentence/previous-orders.njk
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@

{% for order in previousOrderHistory.previousOrders %}
<p class="govuk-heading-s govuk-!-margin-bottom-0">
<a class="govuk-link govuk-link--no-visited-state" href="/case/{{ crn }}/handoff/delius">
<a class="govuk-link govuk-link--no-visited-state" href="/case/{{ crn }}/sentence/previous-orders/{{ order.eventNumber }}">
{{ order.title }}
</a>
</p>
Expand Down
48 changes: 46 additions & 2 deletions wiremock/mappings/X000001-orders.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,19 @@
"status": 200,
"jsonBody": {
"name": {
"forename": "Eula",
"forename": "Caroline",
"middleName": "",
"surname": "Schmeler"
"surname": "Wolff"
},
"previousOrders": [
{
"eventNumber": "3",
"title": "CJA - Std Determinate Custody (16 Months)",
"description": "Merchant Shipping Acts - 15000",
"terminationDate": "2024-04-09"
},
{
"eventNumber": "2",
"title": "CJA - Std Determinate Custody (12 Months)",
"description": "Army - offences associated with - 15300",
"terminationDate": "2024-04-08"
Expand All @@ -30,6 +32,48 @@
"Content-Type": "application/json"
}
}
},
{
"request": {
"urlPattern": "/mas/sentence/X000001/previous-orders/3",
"method": "GET"
},
"response": {
"status": 200,
"jsonBody": {
"name": {
"forename": "Caroline",
"middleName": "",
"surname": "Wolff"
},
"sentence": {
"offenceDetails": {
"eventNumber": "1",
"offence": {
"description": "Another Murder",
"count": 1
},
"dateOfOffence": "2024-01-20",
"notes": "",
"additionalOffences": []
},
"conviction": {
"additionalSentences": []
},
"order": {
"description": "12 month community order",
"length": 12,
"endDate": "2025-01-31",
"releaseDate": "2024-11-01",
"startDate": "2024-02-01"
},
"courtDocuments": []
}
},
"headers": {
"Content-Type": "application/json"
}
}
}
]
}

0 comments on commit e1a6615

Please sign in to comment.