Skip to content

Commit df11a4e

Browse files
Fix letter schema
1 parent 393b4fd commit df11a4e

File tree

8 files changed

+362
-15
lines changed

8 files changed

+362
-15
lines changed

infrastructure/terraform/components/api/resources/spec.tmpl.json

Lines changed: 349 additions & 7 deletions
Large diffs are not rendered by default.

internal/datastore/src/letter-repository.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ export class LetterRepository {
115115
':status': status,
116116
':updatedAt': new Date().toISOString(),
117117
':supplierStatus': `${supplierId}#${status}`,
118-
':ttl': Math.floor(Date.now() / 1000 + 60 * 60 * this.config.ttlHours)
118+
':ttl': Math.floor(Date.now() / 1000 + 60 * 60 * this.config.ttlHours) // TODO CCM-11188: refresh TTL on update?
119119
},
120120
ReturnValues: 'ALL_NEW'
121121
}));

lambdas/api-handler/src/contracts/errors.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export function buildApiError(params: {
4343
detail: ApiErrorDetail | string;
4444
}): ApiError {
4545
return {
46-
id: randomUUID(),
46+
id: randomUUID(), // TODO CCM-11188: correlation ID?
4747
code: params.code,
4848
links: { about: 'https://digital.nhs.uk/developer/api-catalogue/nhs-notify-supplier' },
4949
status: params.status,

lambdas/api-handler/src/contracts/letter-api.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@ export const LetterApiStatusSchema = z.enum([
1818
export type LetterApiStatus = z.infer<typeof LetterApiStatusSchema>;
1919

2020
export const LetterApiAttributesSchema = z.object({
21-
reasonCode: z.number(),
22-
reasonText: z.string(),
23-
requestedProductionStatus: z.enum(["ACTIVE", "HOLD", "CANCEL"]),
21+
reasonCode: z.number().optional(),
22+
reasonText: z.string().optional(),
23+
requestedProductionStatus: z.enum(["ACTIVE", "HOLD", "CANCEL"]).optional(),
24+
specificationId: z.string(),
2425
status: LetterApiStatusSchema,
2526
});
2627

lambdas/api-handler/src/handlers/__tests__/patch-letters.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ function makeLetterApiDocument(id: string, status: LetterApiStatus) : LetterApiD
3434
reasonCode: 123,
3535
reasonText: "Reason text",
3636
requestedProductionStatus: "ACTIVE",
37+
specificationId: "spec1",
3738
status
3839
},
3940
id,

lambdas/api-handler/src/mappers/__tests__/letter-mapper.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ describe('toApiLetter', () => {
2727
reasonCode: 123,
2828
reasonText: 'Reason text',
2929
requestedProductionStatus: 'ACTIVE',
30+
specificationId: 'spec123',
3031
status: 'PENDING'
3132
}
3233
}

lambdas/api-handler/src/mappers/letter-mapper.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ export function toApiLetter(letter: Letter): LetterApiDocument {
77
id: letter.id,
88
type: 'Letter',
99
attributes: {
10-
reasonCode: 123, // TODO CCM-11188: map from DB if stored
11-
reasonText: 'Reason text', // TODO CCM-11188: map from DB if stored
12-
requestedProductionStatus: 'ACTIVE', // TODO CCM-11188: map from DB if stored
10+
reasonCode: 123, // TODO CCM-11188
11+
reasonText: 'Reason text', // TODO CCM-11188
12+
requestedProductionStatus: 'ACTIVE', // TODO CCM-11188
13+
specificationId: letter.specificationId,
1314
status: letter.status
1415
}
1516
}

lambdas/api-handler/src/services/__tests__/letter-operations.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ function makeLetterApiResource(id: string, status: LetterApiStatus) : LetterApiR
88
reasonCode: 123,
99
reasonText: "Reason text",
1010
requestedProductionStatus: "ACTIVE",
11+
specificationId: "spec123",
1112
status
1213
},
1314
id,

0 commit comments

Comments
 (0)