From fbfb995ae5d2758bd0e4b52ee6046f725b8a54ef Mon Sep 17 00:00:00 2001 From: Juho Leinonen Date: Thu, 19 Oct 2023 16:06:45 +0300 Subject: [PATCH] =?UTF-8?q?AE-1987:=20Simplify=20k=C3=A4skyp=C3=A4=C3=A4t?= =?UTF-8?q?=C3=B6s=20/=20varsinainen=20p=C3=A4=C3=A4t=C3=B6s=20schema=20cr?= =?UTF-8?q?eation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/valvonta-kaytto/schema.js | 70 +++++++++++------------------ 1 file changed, 25 insertions(+), 45 deletions(-) diff --git a/src/pages/valvonta-kaytto/schema.js b/src/pages/valvonta-kaytto/schema.js index deaa626c..affffac6 100644 --- a/src/pages/valvonta-kaytto/schema.js +++ b/src/pages/valvonta-kaytto/schema.js @@ -88,6 +88,15 @@ export const toimenpideSave = { } }; +const addRequiredValidatorToFieldsWhen = (when, fields) => osapuoliData => + R.reduce( + (acc, field) => { + return R.over(R.lensProp(field), addRequiredValidator(when), acc); + }, + osapuoliData, + fields + ); + export const toimenpidePublish = (templates, toimenpide) => R.evolve( { @@ -119,54 +128,25 @@ export const toimenpidePublish = (templates, toimenpide) => ], toimenpide ); - // TODO: Siisti toisteisuus return R.compose( - R.over( - R.lensProp('statement-sv'), - addRequiredValidator( - Toimenpiteet.isDecisionOrderActualDecision(toimenpide) && - recipientAnswered - ) - ), - R.over( - R.lensProp('statement-fi'), - addRequiredValidator( - Toimenpiteet.isDecisionOrderActualDecision(toimenpide) && - recipientAnswered - ) - ), - R.over( - R.lensProp('answer-commentary-sv'), - addRequiredValidator( - Toimenpiteet.isDecisionOrderActualDecision(toimenpide) && - recipientAnswered - ) - ), - R.over( - R.lensProp('answer-commentary-fi'), - addRequiredValidator( - Toimenpiteet.isDecisionOrderActualDecision(toimenpide) && - recipientAnswered - ) - ), - R.over( - R.lensProp('hallinto-oikeus-id'), - addRequiredValidator( - Toimenpiteet.isDecisionOrderActualDecision(toimenpide) && - hasDocument - ) + addRequiredValidatorToFieldsWhen( + Toimenpiteet.isDecisionOrderActualDecision(toimenpide) && + recipientAnswered, + [ + 'statement-sv', + 'statement-fi', + 'answer-commentary-sv', + 'answer-commentary-fi' + ] ), - R.over( - R.lensProp('karajaoikeus-id'), - addRequiredValidator( - Toimenpiteet.isNoticeBailiff(toimenpide) && hasDocument - ) + addRequiredValidatorToFieldsWhen( + Toimenpiteet.isDecisionOrderActualDecision(toimenpide) && + hasDocument, + ['hallinto-oikeus-id'] ), - R.over( - R.lensProp('haastemies-email'), - addRequiredValidator( - Toimenpiteet.isNoticeBailiff(toimenpide) && hasDocument - ) + addRequiredValidatorToFieldsWhen( + Toimenpiteet.isNoticeBailiff(toimenpide) && hasDocument, + ['karajaoikeus-id', 'haastemies-email'] ) )(item); }, R.map(R.always(osapuoliSpecificSchema[0]), R.range(0, R.length(R.path(['type-specific-data', 'osapuoli-specific-data'], toimenpide))))),