Skip to content

Commit 831a568

Browse files
committed
Update schemas.ts
1 parent 98898bf commit 831a568

File tree

1 file changed

+22
-30
lines changed

1 file changed

+22
-30
lines changed

src/lib/api/validations/schemas.ts

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,26 @@ const { t } = i18n;
77

88
const member = z.custom<Member>();
99

10+
// Shared superRefine helper for charging target validation
11+
function validateChargingTarget<T extends { chargingTargetType?: string; chargingTarget?: string }>(
12+
data: T,
13+
ctx: z.RefinementCtx,
14+
) {
15+
if (data.chargingTargetType && data.chargingTarget && !btpChargingTargetRegex.test(data.chargingTarget ?? '')) {
16+
ctx.addIssue({
17+
path: ['chargingTarget'],
18+
code: z.ZodIssueCode.custom,
19+
message: t('validationErrors.notValidChargingTargetFormat'),
20+
});
21+
} else if (data.chargingTargetType && !data.chargingTarget) {
22+
ctx.addIssue({
23+
path: ['chargingTarget'],
24+
code: z.ZodIssueCode.custom,
25+
message: t('validationErrors.required'),
26+
});
27+
}
28+
}
29+
1030
export const validationSchemaProjectWorkspace = z
1131
.object({
1232
name: z
@@ -19,21 +39,7 @@ export const validationSchemaProjectWorkspace = z
1939
chargingTargetType: z.string().optional(),
2040
members: z.array(member).refine((members) => members?.length > 0),
2141
})
22-
.superRefine((data, ctx) => {
23-
if (data.chargingTargetType && data.chargingTarget && !btpChargingTargetRegex.test(data.chargingTarget ?? '')) {
24-
ctx.addIssue({
25-
path: ['chargingTarget'],
26-
code: z.ZodIssueCode.custom,
27-
message: t('validationErrors.notValidChargingTargetFormat'),
28-
});
29-
} else if (data.chargingTargetType && !data.chargingTarget) {
30-
ctx.addIssue({
31-
path: ['chargingTarget'],
32-
code: z.ZodIssueCode.custom,
33-
message: t('validationErrors.required'),
34-
});
35-
}
36-
});
42+
.superRefine(validateChargingTarget);
3743

3844
export const validationSchemaCreateManagedControlPlane = z
3945
.object({
@@ -47,18 +53,4 @@ export const validationSchemaCreateManagedControlPlane = z
4753
chargingTargetType: z.string().optional(),
4854
members: z.array(member),
4955
})
50-
.superRefine((data, ctx) => {
51-
if (data.chargingTargetType && data.chargingTarget && !btpChargingTargetRegex.test(data.chargingTarget ?? '')) {
52-
ctx.addIssue({
53-
path: ['chargingTarget'],
54-
code: z.ZodIssueCode.custom,
55-
message: t('validationErrors.notValidChargingTargetFormat'),
56-
});
57-
} else if (data.chargingTargetType && !data.chargingTarget) {
58-
ctx.addIssue({
59-
path: ['chargingTarget'],
60-
code: z.ZodIssueCode.custom,
61-
message: t('validationErrors.required'),
62-
});
63-
}
64-
});
56+
.superRefine(validateChargingTarget);

0 commit comments

Comments
 (0)