@@ -7,6 +7,26 @@ const { t } = i18n;
77
88const 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+
1030export 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
3844export 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