Skip to content

Commit f852b88

Browse files
committed
CCM-8585: make files required in DTO
1 parent 4d55ee6 commit f852b88

File tree

4 files changed

+44
-16
lines changed

4 files changed

+44
-16
lines changed

infrastructure/terraform/modules/backend-api/spec.tmpl.json

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,7 @@
508508
}
509509
}
510510
},
511-
"LetterProperties": {
511+
"CreateLetterProperties": {
512512
"type": "object",
513513
"required": [
514514
"letterType",
@@ -520,12 +520,27 @@
520520
},
521521
"language": {
522522
"$ref": "#/components/schemas/Language"
523-
},
524-
"files": {
525-
"$ref": "#/components/schemas/LetterFiles"
526523
}
527524
}
528525
},
526+
"LetterProperties": {
527+
"allOf": [
528+
{
529+
"$ref": "#/components/schemas/CreateLetterProperties"
530+
},
531+
{
532+
"type": "object",
533+
"required": [
534+
"files"
535+
],
536+
"properties": {
537+
"files": {
538+
"$ref": "#/components/schemas/LetterFiles"
539+
}
540+
}
541+
}
542+
]
543+
},
529544
"BaseTemplate": {
530545
"type": "object",
531546
"required": [
@@ -559,7 +574,7 @@
559574
"$ref": "#/components/schemas/SmsProperties"
560575
},
561576
{
562-
"$ref": "#/components/schemas/LetterProperties"
577+
"$ref": "#/components/schemas/CreateLetterProperties"
563578
}
564579
]
565580
}
@@ -594,7 +609,7 @@
594609
"$ref": "#/components/schemas/SmsProperties"
595610
},
596611
{
597-
"$ref": "#/components/schemas/LetterProperties"
612+
"$ref": "#/components/schemas/CreateLetterProperties"
598613
}
599614
]
600615
}

lambdas/backend-api/src/__tests__/templates/app/template-client.test.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
LetterFiles,
44
TemplateDto,
55
UpdateTemplate,
6+
ValidatedCreateTemplate,
67
} from 'nhs-notify-backend-client';
78
import {
89
DatabaseTemplate,
@@ -237,7 +238,7 @@ describe('templateClient', () => {
237238
},
238239
};
239240

240-
const dataWithFiles: CreateTemplate = {
241+
const dataWithFiles: ValidatedCreateTemplate = {
241242
templateType: 'LETTER',
242243
name: 'name',
243244
language: 'en',
@@ -490,7 +491,7 @@ describe('templateClient', () => {
490491
},
491492
};
492493

493-
const dataWithFiles: CreateTemplate = {
494+
const dataWithFiles: ValidatedCreateTemplate = {
494495
templateType: 'LETTER',
495496
name: 'name',
496497
language: 'en',
@@ -589,7 +590,7 @@ describe('templateClient', () => {
589590
},
590591
};
591592

592-
const dataWithFiles: CreateTemplate = {
593+
const dataWithFiles: ValidatedCreateTemplate = {
593594
templateType: 'LETTER',
594595
name: 'name',
595596
language: 'en',
@@ -682,7 +683,7 @@ describe('templateClient', () => {
682683
},
683684
};
684685

685-
const dataWithFiles: CreateTemplate = {
686+
const dataWithFiles: ValidatedCreateTemplate = {
686687
templateType: 'LETTER',
687688
name: 'name',
688689
language: 'en',

lambdas/backend-client/src/schemas/template-schema.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { z } from 'zod';
22
import {
33
BaseTemplate,
4+
CreateLetterProperties,
45
CreateTemplate,
56
EmailProperties,
67
FileDetails,
@@ -102,14 +103,17 @@ const $SmsProperties = schemaFor<SmsProperties>()(
102103
})
103104
);
104105

105-
const $LetterProperties = schemaFor<LetterProperties>()(
106+
const $CreateLetterProperties = schemaFor<CreateLetterProperties>()(
106107
z.object({
107108
letterType: z.enum(LETTER_TYPE_LIST),
108109
language: z.enum(LANGUAGE_LIST),
109-
files: $LetterFiles.optional(),
110110
})
111111
);
112112

113+
const $LetterProperties = schemaFor<LetterProperties>()(
114+
$CreateLetterProperties.extend({ files: $LetterFiles })
115+
);
116+
113117
export const $BaseTemplateSchema = schemaFor<BaseTemplate>()(
114118
z.object({
115119
name: z.string().trim().min(1),

lambdas/backend-client/src/types/generated/types.gen.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,13 @@ export type SmsProperties = {
6969
message: string;
7070
};
7171

72-
export type LetterProperties = {
72+
export type CreateLetterProperties = {
7373
letterType: LetterType;
7474
language: Language;
75-
files?: LetterFiles;
75+
};
76+
77+
export type LetterProperties = CreateLetterProperties & {
78+
files: LetterFiles;
7679
};
7780

7881
export type BaseTemplate = {
@@ -81,11 +84,16 @@ export type BaseTemplate = {
8184
};
8285

8386
export type CreateTemplate = BaseTemplate &
84-
(NhsAppProperties | EmailProperties | SmsProperties | LetterProperties);
87+
(NhsAppProperties | EmailProperties | SmsProperties | CreateLetterProperties);
8588

8689
export type UpdateTemplate = BaseTemplate & {
8790
templateStatus: TemplateStatus;
88-
} & (NhsAppProperties | EmailProperties | SmsProperties | LetterProperties);
91+
} & (
92+
| NhsAppProperties
93+
| EmailProperties
94+
| SmsProperties
95+
| CreateLetterProperties
96+
);
8997

9098
export type TemplateDto = BaseTemplate & {
9199
id: string;

0 commit comments

Comments
 (0)